python seleinum获取network响应信息

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_93",
        desired_capabilities=capabilities,
)

driver.get("https://www.rkengler.com")
logs = driver.get_log("performance")
for log in logs:
"""
log内容
{'method': 'Network.responseReceived', 'params': {'loaderId': '', 'requestId': '94BA56CDA0DE3EBBD05F45534AC7903E', 'response': {'connectionId': 122, 'connectionReused': True, 'encodedDataLength': 478, 'fromDiskCache': False, 'fromPrefetchCache': False, 'fromServiceWorker': False, 'headers': {'access-control-allow-credentials': 'true', 'access-control-allow-headers': 'X-Requested-With,Content-Type,Cache-Control,Pragma,Date,X-Timestamp,Content-Encoding,api-version,Authorization,authorizationv2,Access-Control-Allow-Origin,lang,token,X-Common-Message,X-B3-TraceId,X-B3-SpanId,X-B3-Sampled,version,platform,uuid,x-matchpath,X-B3-SessionId,shuidi-app-code,auth-app-code', 'access-control-allow-methods': 'HEAD, POST, GET, OPTIONS, DELETE, PUT', 'access-control-allow-origin': 'https://xxx.com', 'access-control-expose-headers': 'Content-Disposition,Etag', 'access-control-max-age': '86400', 'date': 'Mon, 27 Sep 2021 06:48:48 GMT', 'server': 'openresty'}, 'mimeType': '', 'protocol': 'h2', 'remoteIPAddress': '140.143.181.70', 'remotePort': 443, 'responseTime': 1632725328677.872, 'securityState': 'secure', 'status': 204, 'statusText': '', 'timing': {'connectEnd': -1, 'connectStart': -1, 'dnsEnd': -1, 'dnsStart': -1, 'proxyEnd': -1, 'proxyStart': -1, 'pushEnd': 0, 'pushStart': 0, 'receiveHeadersEnd': 12.489, 'requestTime': 1623670.725099, 'sendEnd': 0.289, 'sendStart': 0.219, 'sslEnd': -1, 'sslStart': -1, 'workerFetchStart': -1, 'workerReady': -1, 'workerRespondWithSettled': -1, 'workerStart': -1}, 'url': 'https://xxx.com/api/task-info?taskId=1'}, 'timestamp': 1623670.738306, 'type': 'Preflight'}}
"""

    log = json.loads(log["message"])["message"]
    if "Network.responseReceived" in log["method"] and "params" in log.keys():
        body = driver.execute_cdp_cmd('Network.getResponseBody', {
            'requestId': log["params"]["requestId"]
        })
        print(body)
        break

driver.quit()
body打印内容
{'base64Encoded': False, 'body': '<!DOCTYPE html>...</html>\n'}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值