自从开始学习爬虫后,总是无法控制那一颗躁动的心。每天总是想要爬点什么,爬过电影、爬过电影影评、爬过图片(美女图)、爬过视频链接,从最初的简单解析网页到模拟登陆再到异步加载,现在看到一个网页最先想的就是要不要爬一下。话不多说,来我们今天的项目,通过模拟登陆和异步加载爬一下QQ群成员的信息。
大概思路
我们通过网页版QQ群管理去获取相应的群信息,通过点击QQ群首页上的“群管理”进入到QQ群页面,分析链接我们发现每一个QQ群的链接形式都是“https://qun.qq.com/member.html#gid=”加上群号码,这样就为我们爬虫减少了一定的工作量。在爬腾讯的网站最大的问题就是登录,我们不能像入门时的简单的发出登录请求包,获取cookies后再用cookies来访问,腾讯的网站是异步加载的,这有的去分析监听network和js请求来找到想要的加载,十分麻烦。所以我们采用selenuim,不需要去找请求,直接模拟登录就可以了,登陆后直接获取到网页的源码,然后像简单的爬虫一样去解析源码获取我们想要的内容。
一、模拟登陆
首先通过selenuim定义一个driver对象,这里我使用的是火狐浏览器,直接通过下面的命令即可调用
定义好了以后,我们通过下面的函数浏览器打开我们的想要爬取QQ群的链接,QQ群的链接形式是“https://qun.qq.com/member.html#gid=”+群号码
二、下拉加载页面
登录到QQ群成员界面后,网页上显示的只有20个左右的人数,当网页下拉时,每次更新会加载20个成员的信息,我们爬取需要所有人的信息就需要模拟下拉界面,这时候selenuim另一个功能出现模拟下拉加载页面
三、保存网页源码
通过selenuim里的driver.page_source来获取网页源码,我们可以将源码保存到本地txt文件中,这样可以方便对源码解析,避免每次登陆的麻烦。
四、提取信息
相信到了这一步很多小伙伴都十分熟悉了,这一步就是我们刚接触爬虫时分析网页一样。这里我们使用BeautifulSoup来解析源码。依次获取群成员的信息。
欢迎关注我们
领取专属 10元无门槛券
私享最新 技术干货