国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

selenium-python如何捕獲網絡流量的響應

瀏覽:5日期:2022-08-07 15:52:57
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解決selenium-python如何捕獲網絡流量的響應?

您可以訪問瀏覽器或chromedriver日志,它們在網絡響應方面略有不同。稱為瀏覽器日志,稱為performance驅動程序日志driver。它們返回一個類似json的對象,您可以解析該對象以使用其中的Network方法提取事件:

{’level’: ’INFO’, ’message’: ’{'message':{'method':'Page.frameStoppedLoading','params':{'frameId':'FB10764A3ABF7FFC83110C39C5F7BF77'}},'webview':'C2D13BD13CF743B6D0695B35E9CC935C'}’, ’timestamp’: 1538607113832}, {’level’: ’INFO’, ’message’: ’{'message':{'method':'Page.frameDetached','params':{'frameId':'FB10764A3ABF7FFC83110C39C5F7BF77'}},'webview':'C2D13BD13CF743B6D0695B35E9CC935C'}’, ’timestamp’: 1538607113838}, {’level’: ’INFO’, ’message’: ’{'message':{'method':'Network.requestwillBeSent','params':{'documentURL':'https://stackoverflow.com/questions/52633697/selenium-python-how-to-capture-network-traffics-response','frameId':'C2D13BD13CF743B6D0695B35E9CC935C','hasUserGesture':false,'initiator':{'type':'other'},'loaderId':'5331BFDC4F466FCED920CFC9F033D2EC','request':{'headers':{'Upgrade-Insecure-Requests':'1','User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'},'initialPriority':'VeryHigh','method':'GET','mixedContentType':'none','referrerPolicy':'no-referrer-when-downgrade','url':'https://stackoverflow.com/questions/52633697/selenium-python-how-to-capture-network-traffics-response'},'requestId':'5331BFDC4F466FCED920CFC9F033D2EC','timestamp':104499.729,'type':'Document','wallTime':1538607113.838206}},'webview':'C2D13BD13CF743B6D0695B35E9CC935C'}’, ’timestamp’: 1538607113839},...}

您需要啟用登錄DesiredCapabilities,然后使用JSON模塊進行解析:

import jsonfrom selenium import webdriverfrom selenium.webdriver.common.desired_capabilities import DesiredCapabilitiescaps = DesiredCapabilities.CHROMEcaps[’loggingPrefs’] = {’performance’: ’ALL’}driver = webdriver.Chrome(desired_capabilities=caps)driver.get(’https://stackoverflow.com/questions/52633697/selenium-python-how-to-capture-network-traffics-response’)def process_browser_log_entry(entry): response = json.loads(entry[’message’])[’message’] return responsebrowser_log = driver.get_log(’performance’) events = [process_browser_log_entry(entry) for entry in browser_log]events = [event for event in events if ’Network.response’ in event[’method’]]

我不知道是否可以使用此方法訪問響應數據本身,但是可以獲取響應的URL。

解決方法

我正在使用pythonDjango創建一個Web應用程序。我正在使用selenium來啟動無頭瀏覽器(phantomjs)并單擊幾次,直到到達特定頁面。我希望捕獲網絡流量并獲得特定網絡呼叫的響應。該網絡調用實際上包含一個html文檔作為其響應。

有什么辦法可以做到這一點?

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 海伦市| 沁源县| 洛隆县| 巍山| 中宁县| 天水市| 福建省| 芦山县| 望城县| 禹城市| 黎城县| 平邑县| 长治县| 柏乡县| 东明县| 九寨沟县| 林甸县| 南丰县| 巨鹿县| 新竹县| 汽车| 德安县| 六盘水市| 浪卡子县| 巴楚县| 丰都县| 马龙县| 龙州县| 绥宁县| 山西省| 明星| 调兵山市| 迁西县| 孟津县| 泰来县| 昌都县| 托克逊县| 鄱阳县| 监利县| 宣武区| 天祝|