调用工具:Browsermob-Proxy
Browsermob-Proxy是一个开源的Java编写的基于LittleProxy的代理服务。Browsermob-Proxy的具体流程有点类似与Flidder或Charles。即开启一个端口并作为一个标准代理存在,当HTTP客户端(浏览器等)设置了这个代理,则可以抓取所有的请求细节并获取返回内容。
1、下载zip包,https://github.com/lightbody/browsermob-proxy/releases ,支持Linux和Windows。
2、pip install browsermob-proxy
3、代码
from browsermobproxy import Server
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
#启动
server = Server(r‘.\browsermob-proxy-2.1.4\bin\browsermob-proxy.bat‘)
server.start()
proxy = server.create_proxy()
#设置driver options
chrome_options = Options()
chrome_options.add_argument(‘--proxy-server={0}‘.format(proxy.proxy))
driver = webdriver.Chrome(chrome_options=chrome_options)
#
url = ‘http://st.gdjnpx.cn/‘
proxy.new_har(‘zhiye‘, options={‘captureHeaders‘: True, ‘captureContent‘: True})
driver.get(url)
res = proxy.har
for entry in res[‘log‘][‘entries‘]:
res_url = entry[‘request‘][‘url‘]
if "/ApiUser/login?useraccount" in res_url:
res_response = entry[‘response‘]
print(res_response)
server.stop()