php抓取网页动态数据(动态网页网页用XHR局部获取数据,需要动态抓取网页发起的请求)
优采云 发布时间: 2022-04-08 23:01php抓取网页动态数据(动态网页网页用XHR局部获取数据,需要动态抓取网页发起的请求)
动态网页
网页使用 XHR 在本地获取数据。要捕获此类数据,您需要找到 XHR URL。此类 URL 通常收录令牌,这些令牌将在一段时间后过期。因此,需要动态抓取网页发起的请求。
1
2
3
XHR含有Token的URL
https://****/****?Id=5&token=99aeacc27dc64c1124f1e25dc0666c10
剧作家
PlayWright是微软开发的一款浏览器模拟神器,其中Network Event可以监控网页发送的请求和响应。
稍微修改代码以满足您的需求
只*敏*感*词*响应,如果response.url收录关键字,输出对应的url
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from playwright.sync_api import sync_playwright
def run(playwright) -> None:
# browser = playwright.chromium.launch(headless=False)
browser = playwright.chromium.launch()
context = browser.new_context()
# Open new page
page = context.new_page()
# page.on("request", lambda request: print(request.url))
page.on("response", res)
# Go to
page.goto("https://****/****")
# ---------------------
context.close()
browser.close()
def res(res) -> None:
if "id" in res.url:
print(res.url)
with sync_playwright() as playwright:
run(playwright)
后续PowerBi支持调用Python返回数据集。 response.json()可以返回json格式的数据,导入pandas返回PowerBi,应该可以直接获取数据集。 PlayWright 支持 C#,理论上应该可以使用 VSTO 将数据返回给 EXCEL。