小众且好用的 Python 爬虫库 RoboBrowser

小众且好用的 Python 爬虫库 RoboBrowser,第1张

概述RoboBrowser,Yourfriendlyneighborhoodwebscraper!由纯Python编写,运行无需独立的浏览器,它不仅可以做爬虫,还可以实现Web端的自动化项目地址:https://github.com/jmcarpobobrowser2.安装及用法在实战之前,我们先安装依赖库及解析器PS:官方推荐的解析器是「lxml」# 

Robobrowser,Your frIEndly neighborhood web scraper!由纯 Python 编写,运行无需独立的浏览器,它不仅可以做爬虫,还可以实现 Web 端的自动化

项目地址:

https://github.com/jmcarp/robobrowser

2. 安装及用法

在实战之前,我们先安装依赖库及解析器

PS:官方推荐的解析器是 「lxml」

# 安装依赖pip3 install robobrowser# lxml解析器(官方推荐)pip3 install lxml

Robobrowser 常见的 2 个功能为:

模拟表单 Form 提交

网页数据爬取

使用 Robobrowser 进行网页数据爬取,常见的 3 个方法如下:

find

查询当前页面满足条件的第一个元素

find_all

查询当前页面拥有共同属性的一个列表元素

select

通过 CSS 选择器,查询页面,返回一个元素列表

需要指出的是,Robobrowser 依赖于 BS4,所以它的使用方法和 BS4 类似

更多功能可以参考:

https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/

3. 实战一下

我们以「 百度搜索及爬取搜索结果列表 」为例

3-1  打开目标网站

首先,我们实例化一个 Robobrowser 对象

from time import sleepfrom robobrowser import Robobrowserhome_url = 'https://baIDu.com'#  parser: 解析器,HTML parser; used by BeautifulSoup#  官方推荐:lxmlrb = Robobrowser(history=True, parser='lxml')# 打开目标网站rb.open(home_url)

然后,使用 Robobrowser 实例对象中的 open() 方法打开目标网站

3-2  自动化表单提交

首先,使用 Robobrowser 实例对象获取网页中的表单 Form

然后,通过为表单中的输入框赋值模拟输入 *** 作

最后,使用 submit_form() 方法进行表单提交,模拟一次搜索 *** 作

# 获取表单对象bd_form = rb.get_form()print(bd_form)bd_form['wd'].value = "AirPython"# 提交表单,模拟一次搜索rb.submit_form(bd_form)

3-3  数据爬取

分析搜索页面的网页结构,利用 Robobrowser 中的 select() 方法匹配出所有的搜索列表元素

遍历搜索列表元素,使用 find() 方法查询出每一项的标题及 href 链接地址

# 查看结果result_elements = rb.select(".result")# 搜索结果search_result = []# 第一项的链接地址first_href = ''for index, element in enumerate(result_elements):    Title = element.find("a").text    href = element.find("a")['href']    search_result.append(Title)    if index == 0:        first_href = element.find("a")        print('第一项地址为:', href)print(search_result)

最后,使用 Robobrowser 中的 follow_link() 方法模拟一下「点击链接,查看网页详情」的 *** 作

# 跳转到第一个链接rb.follow_link(first_href)# 获取历史print(rb.url)

需要注意的是,follow_link() 方法的参数为带有 href 值的 a 标签

4. 最后

文中结合百度搜索实例,使用 Robobrowser 完成了一次自动化及爬虫 *** 作

相比 Selenium、Helium 等,Robobrowser 更轻量级,不依赖独立的浏览器及驱动

如果想处理一些简单的爬虫或 Web 自动化,Robobrowser 完全够用;但是面对一些复杂的自动化场景,更建议使用 Selenium、pyppeteer、Helium 等

总结

以上是内存溢出为你收集整理的小众且好用的 Python 爬虫库 RoboBrowser全部内容,希望文章能够帮你解决小众且好用的 Python 爬虫库 RoboBrowser所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1188446.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存