爬虫笔记(三):实战qq登录

咳咳,再这样下去会进橘子叭hhhhhh
以及,这个我觉得大概率是成功的,因为测试了太多次,登录并且验证之后,qq提醒我要我修改密码才可以登录捏QAQ

1. selenium

有关selenium具体是啥,这里就不再赘述了,其他的博客分享的都很清楚,我就大概说一下:selenium是一个模拟用户操作的工具,通过selenium就可以点击网页中某一按钮,或者拖动某一图形(是捏,首先想到的就是滑块验证hhhhh

2. selenium使用

写在最前面:
如果想要使用selenium,就需要安装对应的浏览器驱动。例如使用谷歌浏览器,就要安装对应版本的驱动;使用火狐浏览器,就要安装对应版本的火狐驱动
除此之外,敲重点!!!selenium需安装3.x的版本,否则就会有闪退的情况哈!!!
我所使用的是谷歌浏览器,版本号如下(想要查询谷歌的版本号,点击右上角的三个点,找到最下面的帮助->关于谷歌就看到啦):
爬虫笔记(三):实战qq登录_第1张图片
根据这个版本号,去网上搜了一下,找到了一个可以下载驱动的网址~
我看其他人也会用这个下载驱动的网址,不过截至到2024年2月初,谷歌的最新版本已经是121啦,有点高,所以大家用第一个就好啦
下载了驱动后,将其放进谷歌的文件夹里,我的是这个(应该一般都是C盘的这个文件夹叭hhhhhh)
爬虫笔记(三):实战qq登录_第2张图片
然后将绿线的这个文件路径放到环境变量里就好啦

接下来,看一下怎么使用这个驱动哈~

from selenium import webdriver
from selenium.webdriver import ChromeOptions

# 实现规避检测
option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])

# 实例化浏览器
Chrome_Drive_Path = 'C:\Program Files\Google\Chrome\Application\chromedriver.exe'
driver = webdriver.Chrome(executable_path=Chrome_Drive_Path, options=option)
# 网页屏幕最大化
driver.maximize_window()
driver.get('https://im.qq.com/index/')

然后就发现qq的页面被自动打开啦!!!
爬虫笔记(三):实战qq登录_第3张图片

3. 输入qq号和密码

打开了qq页面后,我们需要点击登录按钮,但是这个操作肯定不能由我们自己做,所以就需要selenium来帮咱们完成这个工作啦(power!!!)
首先,需要找到这个登录按钮的位置,找到之后,就可以根据这个标签的name在网页中定位到这个标签,然后点击它啦
爬虫笔记(三):实战qq登录_第4张图片

# find_element_by_name根据name定位
# 如果标签中有id也可以用id定位,如果有class也可以用class定位
login_btn = driver.find_element_by_name('im.qq.com.login')
# 找到后点击
login_btn.click()

然后,点击登录后,就会出现如下界面啦,咱们肯定选择密码登录啦,需要找到密码登录的按钮,也就是红线标出的位置~
爬虫笔记(三):实战qq登录_第5张图片
但是这里可以看到,密码登录这个按钮是在整个页面的子页面里,也就是html里又嵌套了一个html,这个也就是iframe。如果想要在这个子页面中找到某个标签,就需要多一步——即进入这个页面的操作

# 进入嵌套的子页面中,frame-login就是