selenium 登录 qq

最近突然想分析一下 qq 空间里面的数据,增加一下对自己的了解和认识( 有男神,女神的朋友也可以分析一下,详细了解一下情况,知己知彼,方能百战不殆嘛,嘻嘻)但不过 qq 的加密比较复杂,分析起来头发怕是要掉一半,所以咱选择了 selenium 反正数据量也不是很大,就当练练手了。

安装 selenium 及相关配置

pip install selenium

可以通过这条命令来安装 selenium 非常简单,安装好之后就是配置好相关浏览器的 driver 了,这里我选择的是 chromedriver 不过安装的时候要注意一个问题,就是安装的 driver 要和自己已安装的浏览器匹配,咱之前安装的时候就因为没有注意这个问题,报了一个莫名其妙的错误,具体处理方式参考这篇博客:selenium 使用chrome时与chromedriver版本不匹配的问题

使用 selenium

先导入这个包

from selenium import webdriver

然后,初始化一个 browser

browser = webdriver.Chrome(executable_path="/code/python/chorme/chromedriver") 

这个路径,如果不是已经添加到系统路径的话,是需要自己加上的

接着,咱通过初始化好的这个浏览器,去请求我们的 qq 空间的登录界面

browser.get('https://i.qq.com/')

不出意外的话,咱们能获得这样一个界面:
这里写图片描述

大家可以看到,我们的登录信息是在一个白色框框内的,按正常情况,我们人为登录的时候( 这里说的是账号密码登录 ),一般是先点击一下下方的 “账号密码” 登录,然后会有一个提交信息的表单。
这里写图片描述
现在我们用 selenium 其实是跟人为差不多,selenium 其实就是模拟出人在浏览器上的操作。

所以我们现在要做的,就是切换到这个登录的 frame 中,然后点击一下这个 “账号密码登录” ,再在用户名和密码的表单中填入相应的 qq 号和密码,这个用代码怎么实现呢?一起来看一下:

browser.switch_to_frame('login_frame')
browser.find_element_by_id('switcher_plogin').click()
# time.sleep(5)
browser.find_element_by_id('u').send_keys('qq 号')
browser.find_element_by_id('p').send_keys('密码')
browser.find_element_by_id('login_button').click()
time.sleep(5) #休眠一定时间,等待其加载相应文件
print(browser.page_source)

如果报了找不到元素的错误,可能是登录的元素发生了修改,大家打开开发者模式开一下,稍作修改即可,其实,如果你怕麻烦的话,可以用用手机版的接口,能直接通过表单提交数据。

自此,你应该已经成功登录了 qq 空间,不过在这里本人还碰到了一个问题,每次点击某个按钮后,应该设置程序睡眠一定时间,好像是要等待加载某些文件,反正咱在点击 login_button 后直接打印了一下页面信息得到的是错误登录信息。

猜你喜欢

转载自blog.csdn.net/slwhy/article/details/79617455