Прокси-сервер Browsermob - как я могу изменить ответ с помощью response_interceptor?

Я использую оболочку python для прокси-сервера browsermob , и мне нужно изменить ответ сервера. Но я не могу понять, как я могу это сделать. Может ли кто-нибудь дать мне образец рабочего кода?

В документации говорится, что я могу отправить код javascript для него, но для меня это не работает:

server = Server(path=SCRIPT_DIR+"/browsermob-proxy/bin/browsermob-proxy", options={"port": 8888})
server.start()
proxy = server.create_proxy()

proxy.response_interceptor('contents.setTextContents("<html><body>Response successfully intercepted</body></html>")')

fp = webdriver.FirefoxProfile()
browser = webdriver.Firefox(firefox_profile=fp, proxy=proxy)
browser.get("http://example.com")

Благодаря!

python,selenium,browsermob-proxy,

0

Ответов: 2


0

В версии browserermobproxy 0.7.1 прослушивается response_interceptor. Вы можете перейти в github и получить последний код, или вы можете использовать этот work-around вместо response_interceptor:

import requests

url = proxy.host + '/proxy/' + str(proxy.port) + '/filter/response'
headers={'Content-Type':'text/plain'}

filter = "contents.setTextContents('<html><body>Response successfully intercepted</body></html>');"

r = requests.post(url=url, data=filter, headers=headers)

0

Работает как очарование - просто не забудьте установить прокси-сервер в своем профиле Firefox;) fp.set_proxy (proxy.selenium_proxy ())

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium import webdriver
from browsermobproxy import Server
from pprint import pprint
from time import sleep
import requests


server = Server($PATH_GOES_HERE$)
server.start()


proxy = server.create_proxy()

proxy.new_har('test111')

url = proxy.host + '/proxy/' + str(proxy.port) + '/filter/response'
headers={'Content-Type':'text/plain'}

filter = "response.setTextContents('<html><body>Response successfully intercepted</body></html>');"

r = requests.post(url=url, data=filter, headers=headers)





fp = webdriver.FirefoxProfile()
fp.set_proxy(proxy.selenium_proxy()) # <---- you forgot this one here ;)
browser = webdriver.Firefox(firefox_profile=fp, proxy=proxy)
sleep(3)
browser.get("example.com")
питон, селен, browsermob-прокси,
Похожие вопросы