【发布时间】:2021-03-28 16:39:41
【问题描述】:
我使用 Selenium 对来自网站的 GET 请求后的数据接收做出反应。
网站调用的API是不公开的,所以如果我使用请求的URL来检索数据,我会得到{"message":"Unauthenticated."}。
到目前为止,我所做的只是检索响应的标头。
我发现here 使用driver.execute_cdp_cmd('Network.getResponseBody', {...}) 可能是我的问题的解决方案。
这是我的代码示例:
import json
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
capabilities = DesiredCapabilities.CHROME
capabilities["goog:loggingPrefs"] = {"performance": "ALL"}
driver = webdriver.Chrome(
r"./chromedriver",
desired_capabilities=capabilities,
)
def processLog(log):
log = json.loads(log["message"])["message"]
if ("Network.response" in log["method"] and "params" in log.keys()):
headers = log["params"]["response"]
body = driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': log["params"]["requestId"]})
print(json.dumps(body, indent=4, sort_keys=True))
return log["params"]
logs = driver.get_log('performance')
responses = [processLog(log) for log in logs]
不幸的是,driver.execute_cdp_cmd('Network.getResponseBody', {...}) 返回:
unknown error: unhandled inspector error: {"code":-32000,"message":"No resource with given identifier found"}
你知道我错过了什么吗?
您对如何检索响应正文有任何想法吗?
感谢您的帮助!
【问题讨论】:
标签: python selenium http selenium-webdriver xmlhttprequest