j58*_*436 5 python selenium selenium-chromedriver browsermob
我需要使用Selenium Chrome驱动程序和browsermob代理获取POST请求的响应正文内容。目前,尽管我可以在浏览器网络流量中看到响应,但是当我读取它时,此内容未包含在我的文件HAR输出中。我该如何做才能捕获响应流量?(对不起,这是编程新手,看不到有关BMP的大量python文档)
server.start()
代理= server.create_proxy()
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(“-proxy-server = {0}”。format(proxy.proxy))
驱动程序= webdriver.Chrome(executable_path =“ chromedriver.exe”,chrome_options = chrome_options)
proxy.new_har(“ req”,options = {'captureHeaders':True,'captureContent':True})
driver.get('https://www.example.com/something')
result_har = json.dumps(proxy.har,sure_ascii = False)
使用open(“ haroutput.har”,“ w”)作为harfile:
harfile.write(result_har)
server.stop()
driver.quit()
小智 5
您可以在proxy.har['log']['entries']. 回复内容在下entry['response']['content']
但在你必须添加'captureContent':True到通话option字典之前proxy.new_har。
例子:
from browsermobproxy import Server
server = Server("./bin/browsermob-proxy")
server.start()
proxy = server.create_proxy()
from selenium import webdriver
co = webdriver.ChromeOptions()
co.add_argument('--proxy-server={host}:{port}'.format(host='localhost', port=proxy.port))
driver = webdriver.Chrome(executable_path="chromedriver", chrome_options=co)
proxy.new_har('req',options={'captureHeaders': True,'captureContent':True})
driver.get(url)
proxy.har # returns a HAR
for ent in proxy.har['log']['entries']:
_url = ent['request']['url']
_response = ent['response']
_content = _response['content']['text']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |