mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
3.6 KiB
3.6 KiB
这个示例演示WebPage
如何切换控制浏览器和收发数据包两种模式。
通常,切换模式是用来应付登录检查很严格的网站,可以用浏览器处理登录,再转换模式用收发数据包的形式来采集数据。
但是这种场景须要有对应的账号,不便于演示。演示使用浏览器在百度搜索,然后转换到收发数据包的模式来读取数据。虽然现实使用意义不大,但可以了解其工作模式。
✔️ 页面分析
打开网址,按F12
,我们可以看到页面 html 如下:
(图片点击放大)
输入框<input>
元素id
属性为'kw'
,“百度一下”按钮<input>
元素id
属性为'su'
。
输入关键词搜索后,再查看页面 html:
(图片点击放大)
通过分析 html 代码,我们可以看出,每个结果的标题都存在于<h3>
元素里。因此,我们可以获取页面中所有<h3>
元素,再遍历获取其信息。
✔️ 示例代码
您可以直接运行以下代码:
from DrissionPage import WebPage
# 创建页面对象
page = WebPage()
# 访问网址
page.get('https://www.baidu.com')
# 查找文本框元素并输入关键词
page('#kw').input('DrissionPage')
# 点击搜索按钮
page('#su').click(wait_loading=True)
# 切换到收发数据包模式
page.change_mode()
# 获取所有<h3>元素
links = page.eles('tag:h3')
# 遍历获取到的元素
for link in links:
# 打印元素文本
print(link.text)
输出:
DrissionPage: 一个整合了selenium和requests_html的模块,...
python采集库DrissionPage- 腾讯云开发者社区-腾讯云
DrissionPage- Web应用开发 - 青少年人工智能资源与创新...
DrissionPage-demos: 使用DrissionPage爬取常见网站的示例。
DrissionPagev1.9.0 已经发布,WEB 自动化测试集成工具_程...
DrissionPage首页、文档和下载 - WEB 自动化测试集成工具 ...
DrissionPage- Gitee
DrissionPage—— Web 自动化测试集成工具 - OSCHINA - ...
DrissionPagev1.10.0 已经发布,WEB 自动化测试集成工具 |...
DrissionPagev2.2.1 发布,WEB 自动化测试集成工具
✔️ 示例详解
我们逐行解读代码:
from DrissionPage import WebPage
↑ 首先,我们导入页面对象WebPage
类。
page = WebPage()
↑ 接下来,我们创建一个WebPage
对象。
page.get('https://www.baidu.com')
↑ 然后控制浏览器访问百度。
page('#kw').input('DrissionPage')
page('#su').click(wait_loading=True)
↑ 再通过模拟输入的方式输入关键词,模拟点击搜索按钮。
这里查找元素的方法上两个示例已经讲过,不再细说。
click()
方法里面的wait_loading
参数用于等待页面进入加载状态,避免操作过快出现异常。
page.change_mode()
↑ change_mode()
方法用于切换工作模式,从当前控制浏览器的模式切换到收发数据包模式。
切换的时候程序会在新模式重新访问当前 url。
links = page.eles('tag:h3')
↑ 切换后,我们可以用与控制浏览器一致的语法,获取页面元素,这里eles()
方法是获取页面中所有<h3>
元素,它返回这些元素对象组成的列表。tag:
是查找条件,表示查找某种类型的元素。
for link in links:
print(link.text)
↑ 最后,我们遍历这些元素,并逐个打印它们包含的文本。