基于selenium和xpath定位方法爬取某个话题下的微博内容!是真的强!

本文介绍了如何使用selenium和xpath来模拟用户操作,爬取微博中#嘉兴南湖#话题的评论内容。详细讲解了从安装Firefox驱动到定位元素、模拟输入、翻页等步骤,以及处理翻页和循环结构的重难点。
摘要由CSDN通过智能技术生成

为什么这期要叫暴力爬虫呢?因为笔者认为基于selenium方法非常的简单粗暴!!理由有两点:

1.在selenium方法下,我们可以通过调用浏览器驱动来实现模拟鼠标点击、滑轮下滑以及输入文本等操作,就像真正的用户正在操作浏览器一样(如此一来便可以解决某些需要用户登录才能获取界面的网站),而且在访问网站层面,它的安全性是高于requests方法的,因为它不需要构造一个虚拟请求,所有的操作都是真实发生的。

2.selenium获取网页信息的方法是基于网页的elements而不是network。网页的编排规则一般是:network 下显示了服务器响应给浏览器的文件,这些文件可能包含html、json等格式,浏览器拿到这些文件后,组装成 elements,显示出来。简单理解为,elements是封装得最好的信息,我们在网页上看得到的,elements中都有,即“所见即可得”。在这种情况下,获取到的数据文本就不需要再经过复杂的解析。 目前selenium只支持通过Firefox和Chrome两款浏览器进行操作,本文以Firefox为例进行介绍。

安装Firefox驱动

根据操作系统下载Firefox驱动的压缩包,Firefox驱动的中文下载网站:https://liushilive.github.io/github_selenium_drivers/md/Firefox.html

下载好压缩包后,解压得到geckodriver.exe文件,将该文件安装到Python的环境文件夹中site-packages,也可以单独对该文件配置环境变量,

 

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import selenium.webdriver.support.ui as ui
from selenium.webdriver.common.action_chains import ActionChains  ##引入ActionChains鼠标操作类

 

设定目标内容,分析网站结构***

需求场景:因为今年是建dang百年,笔者想去dang的出生地‘’嘉兴南湖‘’旅游,所以想先到微博上看看相关的评价。

我们以mobile端的微博为例(网站地址:https://m.weibo.cn/)对#嘉兴南湖#下的内容进行爬取。首先手工打开网页模拟一遍操作流程

1.打开网页,得到首页信息
微博mobile版的首页如下,网页最上端即搜索栏

å¨è¿éæå¥å¾çæè¿°

.用鼠标点击搜索栏,输入搜索内容
然而我们发现,这个搜索栏并不是直接可以输入文本的,我们需要用鼠标点一下,进入到如下图所示的这一个输入界面,在这个输入框中,可以直接敲键盘输入‘#嘉兴南湖#’的内容,之后再敲一下键盘上的回车

å¨è¿éæå¥å¾çæè¿°

3.分析话题下的用户内容***
敲回车之后得到的页面是这样的,微博默认以“综合”评价的方式对用户数据进行排列,但我们想以时间的顺序有先有后地来浏览用户评论内容,因此点击“实时”按钮

å¨è¿éæå¥å¾çæè¿°

得到在以时间先后

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值