更新文档

This commit is contained in:
g1879 2022-05-27 18:11:09 +08:00
parent 1f914ea5a3
commit c2f13213d7
5 changed files with 31 additions and 54 deletions

View File

@ -2,6 +2,7 @@
""" """
实用工具 实用工具
""" """
from FlowViewer import Listener, RequestMan
from .session_element import make_session_ele from .session_element import make_session_ele
from .easy_set import get_match_driver from .easy_set import get_match_driver
from FlowViewer import Listener

View File

@ -8,9 +8,9 @@ DrissionPage即 driver 和 session 组合而成的 page。
可兼顾 selenium 的便利性和 requests 的高效率, 可兼顾 selenium 的便利性和 requests 的高效率,
更棒的是,它的使用方式非常简洁和人性化,代码量少,对新手友好。 更棒的是,它的使用方式非常简洁和人性化,代码量少,对新手友好。
点击打开:📒[使用文档](http://g1879.gitee.io/drissionpage) **使用文档:** 📒[点击打开](http://g1879.gitee.io/drissionpage)
**交流QQ群** 897838127 **QQ群** 897838127
**联系邮箱:** g1879@qq.com **联系邮箱:** g1879@qq.com
@ -218,7 +218,7 @@ r = requests.get(url)
with open(f'{save_path}\\img.png', 'wb') as fd: with open(f'{save_path}\\img.png', 'wb') as fd:
for chunk in r.iter_content(): for chunk in r.iter_content():
fd.write(chunk) fd.write(chunk)
# 使用 DrissionPage # 使用 DrissionPage
page.download(url, save_path, 'img') # 支持重命名,处理文件名冲突,自动创建目标文件夹 page.download(url, save_path, 'img') # 支持重命名,处理文件名冲突,自动创建目标文件夹
``` ```
@ -288,4 +288,3 @@ Git 命令学习
如果本项目对您有所帮助,不妨请作者我喝杯咖啡 如果本项目对您有所帮助,不妨请作者我喝杯咖啡
![](https://gitee.com/g1879/DrissionPage-demos/raw/master/pics/code.jpg) ![](https://gitee.com/g1879/DrissionPage-demos/raw/master/pics/code.jpg)

View File

@ -8,7 +8,7 @@ DrissionPage即 driver 和 session 组合而成的 page。
可兼顾 selenium 的便利性和 requests 的高效率, 可兼顾 selenium 的便利性和 requests 的高效率,
更棒的是,它的使用方式非常简洁和人性化,代码量少,对新手友好。 更棒的是,它的使用方式非常简洁和人性化,代码量少,对新手友好。
点击打开:📒[使用文档](http://g1879.gitee.io/drissionpage)
**交流QQ群** 897838127 **交流QQ群** 897838127

View File

@ -1,3 +1,5 @@
* [DataRecorder](https://gitee.com/g1879/DataRecorder) * [DataRecorder](https://gitee.com/g1879/DataRecorder)
* [ListPage](https://gitee.com/g1879/ListPage) * [ListPage](https://gitee.com/g1879/ListPage)
* [DownloadKit](https://gitee.com/g1879/DownloadKit)
* [FlowViewer](http://g1879.gitee.io/flowviewer)
* [Demos](https://gitee.com/g1879/DrissionPage-demos) * [Demos](https://gitee.com/g1879/DrissionPage-demos)

View File

@ -1,60 +1,35 @@
# 监听浏览器网络数据 # 监听浏览器网络数据
许多网页的数据来自接口,在网站使用过程中动态加载,如使用 JS 加载内容的翻页列表。 许多网页的数据来自接口,在网站使用过程中动态加载,如使用 JS 加载内容的翻页列表。
这些数据通常以 json 形式发送,浏览器接收后,对其进行解析,再加载到 DOM 相应位置。 这些数据通常以 json 形式发送,浏览器接收后,对其进行解析,再加载到 DOM 相应位置。
以前,我们从 DOM 中去获取解析后数据的,可能存在 做数据采集的时候,我们往往从 DOM 中去获取解析后数据的,可能存在 数据不全、加载响应不及时、难以判断加载完成等问题。
## 控制浏览器同时监听请求 因此开发了一个监听器,专门用于抓取 Chrome 浏览器数据包。
复制此代码可直接运行查看结果。 由于该工具不依赖 DrissionPage现已独立发布为一个库但仍然可以在 DrissionPage 中导入。
!> 为了便于维护,该工具用法请异步 [FlowViewer](https://gitee.com/g1879/FlowViewer) 查看。
#
# 简单示例
```python ```python
''' from DrissionPage.tools import Listener
如果监听特定请求的Chrome浏览器数据可以采用如下代码
'''
p = MixPage(driver_options=do, session_options=False)
#监听浏览器
l =Listener(p)
# 找到需要监听的链接
l.listen('JobSearchResult.aspx',count=10,asyn=True)
p.ele(".next-page PageNumber").click(by_js=True)
for i in l.steps(): listener =Listener(9222) # 创建监听器监听9222端口的浏览器
scode = i[0].body listener.set_targets('JobSearchResult.aspx') # 设置需要监听的url
# 一旦数据出来,立即停止加载
p.stop_loading() listener.listen(count=10) # 开始监听接收到10条目标url的请求后停止
#使用解析网页
p.ele(".next-page PageNumber").click(by_js=True) for i in listener.steps():
#停止监听,可以设置条件 print(i[0].body) # 打印实时打印监听到的内容
l.stop()
``` listener.stop() #停止监听
## 监听指定端口的请求
复制此代码可直接运行查看结果。
```python
'''
如果仅仅是监听Chrome浏览器的请求可以采用下面的代码
'''
from FlowViewer import Listener
#监听有端口的浏览器
l =Listener()
l.listen(None,count=None,asyn=True)
for i in l.steps():
print(i[0].url)
print(i[0].body)
#停止监听,可以设置条件或者跳出循环
l.stop()
``` ```