尊龙凯时网址

python 爬虫库robobrowser怎么用 -尊龙凯时网址

2024-01-19

这篇文章主要介绍“python 爬虫库robobrowser怎么用”,在日常操作中,相信很多人在python 爬虫库robobrowser怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python 爬虫库robobrowser怎么用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1. 前言

今天推荐一款小众轻量级的爬虫库:robobrowser

robobrowser,your friendly neighborhood web scraper!由纯 python 编写,运行无需独立的浏览器,它不仅可以做爬虫,还可以实现 web 端的自动化

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 sleep
from robobrowser import robobrowser
home_url = 'https://baidu.com'
# parser: 解析器,html parser; used by beautifulsoup
# 官方推荐:lxml
rb = 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怎么用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注本站网站,小编会继续努力为大家带来更多实用的文章!

网站地图