robobrowser的简单使用

336 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第25天,点击查看活动详情

robobrowser简单介绍:

简单来说,robobrowser是一个轻量级的浏览器,自动测试库,和selenium类似,但运行比selenium更为隐蔽,因为它不会打开浏览器页面。RoboBrowser,Your friendly neighborhood web scraper!由纯 Python 编写; 项目地址:打开

安装

推荐使用pip方式安装,简单!

pip 是 Python 的包安装程序。其实,pip 就是 Python 标准库(The Python Standard Library)中的一个包,只是这个包比较特殊,用它可以来管理 Python 标准库(The Python Standard Library)中其他的包。pip 是一个命令行程序。 安装 pip 后,会向系统添加一个 pip 命令,该命令可以从命令提示符运行。 robobrowser库依赖其他库,bs4,lxml,所以两个库都要安装; 打开命令行窗口,输入代码: pip install lxml pip install bs4 pip install robobrowser

等待安装成功;

验证一下: 打开命令行窗口,输入python进行解释器窗口; 输入代码:import robobrowser

如果提示以下错误

File "D:\python3.8\lib\site-packages\robobrowser\browser.py", line 8, in from werkzeug import cached_property ImportError: cannot import name 'cached_property' from 'werkzeug' (D:\python3.8\lib\site-packages\werkzeug_init_.py)

在这里插入图片描述

需要打开文件: D:\python3.8\lib\site-packages\werkzeug_init_.py 输入from werkzeug.utils import cached_property即可修复

from .serving import run_simple as run_simple
from .test import Client as Client
from .wrappers import Request as Request
from .wrappers import Response as Response
#显示引入
from werkzeug.utils import cached_property # 这是引入的包
 
__version__ = "2.1.2"

简单使用;

模拟百度搜索,提交表单:

home_url = 'http://www.baidu.com'
 
#  parser: 解析器,HTML parser; used by BeautifulSoup
#  官方推荐:lxml
rb = RoboBrowser(history=True, parser='lxml')
 
# 打开目标网站
rb.open(home_url)
#print(rb.parsed())
# 获取表单对象
bd_form = rb.get_form()
print(bd_form)
bd_form['wd'].value = "robobrowser"
# 提交表单,模拟一次搜索
rb.submit_form(bd_form)
#print(rb.parsed())
sleep(1)
# 查看结果
result_elements = rb.select(".result")
print(result_elements)

以上获取到的结果,可以使用

from bs4 import BeautifulSoup

进行解析; 如获取标题,链接等; for index, element in enumerate(result_elements): title = element.find("a").text href = element.find("a")['href']

其他操作

跳转链接
rb.follow_link(first_href)
获取历史
print(rb.url)

更多的操作,可以参考官方文档;