python+Selenium自动签到实例
2017-10-27 08:50
946 查看
引言
环境准备
代码
飞猪签到领里程
京东签到领京豆
什么值得买签到
windows计划任务
方法一
方法二
总结
参考
本文利用python+Selenium尝试了几个网站(飞猪、京东、什么值得买)的自动签到,均测试可用。同时总结了Selenium实现这类任务的基本套路,操作十分简单,直接看代码即可。
环境:win7+python3.6
2.下载chromedrive驱动
使用Selenium需要选择一个调用的浏览器并下载好对应的驱动,本文使用chrome浏览器,当然也可以用FireFox等,对应驱动放在python目录下面的scripts目录中,例如
注:如果是macOS,下载对应版本驱动解压到环境变量包含的路径即可,比如/usr/local/bin
计划任务程序->创建基本任务->配置
注意:前提是py后缀的脚本文件默认打开方式是python
这个配置意思是运行你的python.exe程序执行你的脚本(参数),与py文件默认打开方式无关
2.使用驱动打开浏览器
3.利用
4.签到,判断签到成功
后续可移植到PhantomJS,部署到24小时运行的服务器上,利用crontab命令添加计划任务。
Python爬虫利器五之Selenium的用法
搜狗测试-飞猪里程送你要不要?
利用python+selenium自动签到领京豆
环境准备
代码
飞猪签到领里程
京东签到领京豆
什么值得买签到
windows计划任务
方法一
方法二
总结
参考
引言
Selenium是一个用于Web应用程序测试的工具。可以十分简单的模拟输入账户,密码,然后点击登陆按钮,在应对一些反爬虫机制时很有用。本文利用python+Selenium尝试了几个网站(飞猪、京东、什么值得买)的自动签到,均测试可用。同时总结了Selenium实现这类任务的基本套路,操作十分简单,直接看代码即可。
环境:win7+python3.6
环境准备
1.安装Seleniumpip install selenium
2.下载chromedrive驱动
使用Selenium需要选择一个调用的浏览器并下载好对应的驱动,本文使用chrome浏览器,当然也可以用FireFox等,对应驱动放在python目录下面的scripts目录中,例如
C:\Python36\Scripts
注:如果是macOS,下载对应版本驱动解压到环境变量包含的路径即可,比如/usr/local/bin
代码
1.飞猪签到领里程
#coding=utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys import time myusername = "your_user_name"#帐号 mypassword = "your_password"#密码 driver = webdriver.Chrome() driver.get("https://h5.m.taobao.com/trip/home/index.html?_projVer=0.1.116") content = driver.find_element_by_css_selector("li[data-trackname='Member']").click() if driver.title == "会员中心": time.sleep(10) driver.switch_to.frame(0) acount = driver.find_element_by_css_selector("input[name='TPL_username']") acount.clear() acount.send_keys(myusername) time.sleep(2) password = driver.find_element_by_css_selector("input[name='TPL_password']") password.clear() password.send_keys(mypassword) time.sleep(2) driver.find_element_by_css_selector("button[id='btn-submit']").click() while "圆圈" in driver.page_source:#有时需要一步验证,例如陌生IP登录 driver.find_element_by_css_selector("span[class='km-dialog-btn']").click() time.sleep(2) password = driver.find_element_by_css_selector("input[name='TPL_password']") password.clear() password.send_keys(mypassword) time.sleep(2) driver.find_element_by_css_selector("div[class='click2slide-btn']").click() time.sleep(4) driver.find_element_by_css_selector("button[id='btn-submit']").click() time.sleep(5) if "立即签到" in driver.page_source: driver.find_element_by_css_selector("div[data-ref='76']").click() elif "已签到" in driver.page_source: driver.find_element_by_css_selector("div[data-ref='78']").click()
2.京东签到领京豆
#coding=utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains #导入鼠标操作 from selenium.webdriver.common.keys import Keys #导入键值操作 import time myusername = "your_user_name"#帐号 mypassword = "your_password"#密码 signpage = "http://vip.jd.com/home.html" #签到页 browser = webdriver.Chrome() browser.get(signpage) try: jumplogin = browser.find_element_by_css_selector("#content > div.login-wrap > div.w > div > div.login-tab.login-tab-r > a")#切换到账户登录 loginname = browser.find_element_by_id("loginname") password = browser.find_element_by_id("nloginpwd") submit = browser.find_element_by_id("loginsubmit") jumplogin.click() loginname.send_keys(myusername) password.send_keys(mypassword) submit.click() browser.implicitly_wait(5) if len(browser.find_elements_by_css_selector("body > div.floor-vip > div.w.clearfix > div.user-welfare > div.sign-in.signed > div.title")): #判断是否领取 print("今日已领取!无需重复领取") else: signsubmit = browser.find_element_by_class_name("icon-sign") #签到规则 signsubmit.click() print("领取成功!") except: print("京豆领取失败!") time.sleep(5) #退出驱动 #browser.close() browser.quit()
3.什么值得买签到
#coding=utf-8 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0 import time import sys print(sys.maxunicode) myusername = "your_user_name"#帐号 mypassword = "your_password"#密码 #开启浏览器驱动 driver = webdriver.Chrome() driver.implicitly_wait(10) #打开网址 driver.get("http://www.smzdm.com/") #窗口最大化 #driver.maximize_window() #寻找登录按钮并且点击 #driver.find_element_by_id('navBar_login').click() driver.find_element_by_css_selector("a[class='J_login_trigger']").click() #多层窗口定位 driver.switch_to_frame('J_login_iframe') #输入用户名 driver.find_element_by_id("username").send_keys(myusername) #driver.find_element_by_css_selector("input[name='username']").send_keys(myusername) #输入密码 driver.find_element_by_id("password").send_keys(mypassword) #driver.find_element_by_css_selector("input[name='password']").send_keys(mypassword) #点击登录 #driver.find_element_by_id('login_submit').click() driver.find_element_by_css_selector("input[id='login_submit']").click() #time.sleep(5) print('start wait') #WebDriverWait(driver,3).until(lambda driver : driver.find_element_by_id('navBar_login_Info').is_displayed()==True) WebDriverWait(driver,3).until(lambda driver : driver.find_element_by_css_selector("div[class='user-info J_info']").is_displayed()==True) print('end wait') #webElement = driver.find_element_by_id('user_info_tosign') webElement = driver.find_element_by_css_selector("a[class='J_punch']") if(webElement.text =='签到领积分'): webElement.click() else: print(webElement.text) time.sleep(5) #退出驱动 driver.quit()
windows计划任务
脚本调试正常后可以添加进计划任务,每天自动运行。计划任务程序->创建基本任务->配置
方法一:
注意:前提是py后缀的脚本文件默认打开方式是python
方法二:
这个配置意思是运行你的python.exe程序执行你的脚本(参数),与py文件默认打开方式无关
总结
1.找到最简洁、直接的登录页面,这样加载会比较快,多考虑移动端的页面2.使用驱动打开浏览器
driver = webdriver.Chrome(),打开登录页面
driver.get(url)
3.利用
find_element_by_id、
find_element_by_css_selector等API在页面中定位用户名、密码等元素,模拟点击登录
4.签到,判断签到成功
后续可移植到PhantomJS,部署到24小时运行的服务器上,利用crontab命令添加计划任务。
参考
python爬虫利器Selenium使用详解Python爬虫利器五之Selenium的用法
搜狗测试-飞猪里程送你要不要?
利用python+selenium自动签到领京豆
相关文章推荐
- selenium+python实现百度贴吧自动签到
- python3+selenium实现自动签到
- python+selenium百度贴吧自动签到
- 用Python+Selenium模拟键盘和鼠标操作,实现自动签到
- Selenium_python 实例代码(1)
- Python+Selenium 自动化实现实例-处理分页(pagination)
- Selenium实例1-自动登录小米社区并获取主题帖
- Python实现App自动签到领取积分功能
- selenium初探:Python+selenium实现QQ空间自动点赞
- 使用python+selenium完成qq空间自动登录小程序
- python+selenium实现登录账户后自动点击
- [Python爬虫] Selenium自动访问Firefox和Chrome并实现搜索截图
- [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍
- Python实现Selenium实现自动登录CSDN
- Selenium_python实例代码(3)
- Python3 + selenium自动登录QQ空间
- python3+任务计划实现的人人影视网站自动签到
- python selenium chrome使用代理自动登录,并可以远程调用
- Python requests 自动登录某财BBS,自动签到打卡领铜钱,最后再配个plist,每天自动执行