使用网络爬虫实现QQ空间的模拟登录

        近期在利用网络资源学习python爬虫,最近学到了webdriver浏览器驱动+selenium模块的使用,其中有个实战项目是以上内容实现QQ空间的模拟登录。话不多说,下面开始讲解。

前期准备:

        首先我们需要用到selenium,time这两个主要模块以及浏览器驱动程序,首先安装selenium模块:

        在pycharm的最底端找到终端(Terminal)选项,点击

        然后输入: pip install selenium

        

         下载该模块。

        然后安装webdriver相关驱动程序,我使用的是edge浏览器相关的驱动程序

        首先我们需要查看当前edeg浏览器的版本,打开浏览器,点击右上角三个点,点击设置,点击关于Microsoft Edge 查看浏览器的版本

使用网络爬虫实现QQ空间的模拟登录_第1张图片

        根据当前浏览器的版本去下面的网址查看并下载相应的浏览器驱动:Microsoft Edge WebDriver - Microsoft Edge Developer 

使用网络爬虫实现QQ空间的模拟登录_第2张图片

         下载并解压,注意我们需要将解压后的.exe后缀的程序放到要运行的py程序的同级目录中,如下图

使用网络爬虫实现QQ空间的模拟登录_第3张图片

        pycharm中记载的edge浏览器的驱动程序的名称是 ’MicrosoftWebDriver‘ 所以我们需要把名称进行更改,最后就可以编程啦!

编程: 

        首先导入相关的模块

使用网络爬虫实现QQ空间的模拟登录_第4张图片

        然后创建浏览器对象

        使浏览器对象向对应网址发送请求

        因为登录等具体的内容都在frame框架中,所以我们需要转到该框架中

        由于进入该网站后自动转到扫二维码登录的页面,我们需要点击账号密码登录,下面的代码就是执行该操作。根据解析的html中找到对应标签的id,并且执行click操作,模拟鼠标点击

         下一步需要录入账号密码,我们还是先到解析的html标签中找到对应的id,然后执行sen_keys ,即在找到的标签中输入账号,出于隐私,我使用了’*‘来代替,大家可以使用自己的账号密码进行测试

使用网络爬虫实现QQ空间的模拟登录_第5张图片

        录入密码,和上一步相似

        录入完账号密码后我们需要登录了,还是在在解析的html中找到相关的标签对应的id,然后还是执行click操作模拟鼠标点击,这里sleep是为了防止录入完账户密码后立即登录导致看不到效果

使用网络爬虫实现QQ空间的模拟登录_第6张图片

        最后在登录成功的页面停留几秒再退出就可以啦!

使用网络爬虫实现QQ空间的模拟登录_第7张图片

        最终效果 如下所示

         最后附源码 

# 马子哥最帅!
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

edge = webdriver.Edge()

edge.get('https://qzone.qq.com/')

edge.switch_to.frame('login_frame')

a_tag = edge.find_element(By.ID, 'switcher_plogin')
a_tag.click()

userName_tag = edge.find_element(By.ID, 'u')
userName_tag.send_keys('*****')

password_tag = edge.find_element(By.ID, 'p')
password_tag.send_keys('*****')

sleep(1)

login = edge.find_element(By.ID, 'login_button')
login.click()

sleep(3)

edge.quit()

你可能感兴趣的:(爬虫,爬虫,python,pycharm)