以下给大家带来python+selenium模块的应用例子:实现百度贴吧的自动签到
1.安装python和firefox火狐浏览器
这个不在这里阐述,我们以ubuntu操作系统为例,一般linux系统都是自带python和firefox。使用chrome也可以,这里只以firefox浏览器为例子。
2.安装selenium
打开终端输入pip install selenium
这样就代表OK了
3.下载geckodriver
这里给一个github的链接:https://github.com/mozilla/geckodriver/releases/
根据你的系统下载,我们这里下载linux64的
下载后解压,然后把geckodriver放到/usr/local/bin目录下
以上工作都做好我们就可以开始写程序了。
4.写python脚本:获取cookies
首先import两个包,一个是刚刚装好的selenium,另一个是time,后面我们需要用到延迟
from selenium import webdriver
import time
然后我们创建一个driver对象
driver = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')
运行后大家可以看到会弹出一个firefox浏览器,我们需要做的就是模拟人的操作去贴吧网站上实现登录并签到。
之后我们打开网站
driver.get('https://tieba.baidu.com/index.html')
time.sleep(2) #这步是为了等待网站完全刷新好
然后做一个等待
a = input('...')
cookies = driver.get_cookies()
print cookies
等待输入时先通过浏览器手动登录自己账号,然后输入随便一个数据,将cookies保存并输入,复制cookies内容
这个cookies内容很关键,我们复制它保存下来,以后每次登录就不需要输入账号密码或者验证码之类的。
保存后我们就可以退出了
driver.quit()
5.写python脚本:自动登录和签到
保存cookies后我们可以在程序里通过一个变量保存下cookies列表
同样,做自动登录和签到我们还是需要原先的步骤
from selenium import webdriver
import time
cookieslist = ['xxx'] # 这里修改为自己账号的cookie 方法:首先手动登录百度贴吧后用cookies = driver.get_cookies()取得cookies并保存
driver = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')
driver.get('https://tieba.baidu.com/index.html')
time.sleep(2)
打开网站后我们把cookies添加进去然后刷新网站
for cookie in cookieslist:
driver.add_cookie(cookie)
driver.get('https://tieba.baidu.com/index.html')
time.sleep(2)
这时候看到自己账号已经成功登录了,这就完成了自动登录
接下来我们介绍如何自动签到,在介绍自动签到前介绍一个driver的一个方法:find_element_by_xpath
它可以找到我们需要的网页元素,例如找到网页上的一个按钮等
我们可以通过浏览器按下F12然后如图找到我们想要取得的网页元素
根据元素的id、class等属性来获取它们
例如我们登录后首先需要点击左侧头像,我们用以下语句实现
driver.find_element_by_xpath('//*[@class="head_img"]').click()
然后同样要延迟等待网页刷出
time.sleep(2)
此时弹出了一个新网页我们要切换当前网页,可以用如下语句实现
num = driver.window_handles
driver.switch_to_window(num[1])
然后我们点击我们关注的吧
driver.find_element_by_xpath('//*[@class="nav_icon nav_concern"]').click()
然后就可以遍历自己所有的贴吧然后依次点击签到,原理非常简单,举一反三就行,这里就不一一阐述。
这里附上一个完整的代码可供参考:https://download.youkuaiyun.com/download/xjzs123/10722676