【发布时间】:2018-09-04 10:35:40
【问题描述】:
我将 python 与 selenium 和 browsermob-proxy 一起使用。 当动作发生时(点击、提交),我希望更改 http 请求 url。 看不懂browsermob-proxy的解释:
request_interceptor(js)[源代码] 针对每个响应 HttpRequest 请求执行 java/js 代码,HttpMessageContents 内容,HttpMessageInfo messageInfo 是可与之交互的对象。 :param str js: 要执行的 js/java 代码 server = Server("C:\\browsermob-proxy-2.1.4\\bin\\browsermob-proxy.bat")
server.start()
proxy = server.create_proxy()
request_js = " *** code *** "
proxy.request_interceptor(request_js)
如何在“request_js”中编写代码以更改请求 URL? 这是一个可能的例子吗?
如何在 python 中翻译下面的代码?
proxy.addRequestFilter(new RequestFilter() {
@Override
public HttpResponse filterRequest(HttpRequest request, HttpMessageContents contents, HttpMessageInfo messageInfo) {
if (messageInfo.getOriginalUri().endsWith("/some-endpoint-to-intercept")) {
// retrieve the existing message contents as a String or, for binary contents, as a byte[]
String messageContents = contents.getTextContents();
// do some manipulation of the contents
String newContents = messageContents.replaceAll("original-string", "my-modified-string");
//[...]
// replace the existing content by calling setTextContents() or setBinaryContents()
contents.setTextContents(newContents);
}
// in the request filter, you can return an HttpResponse object to "short-circuit" the request
return null;
}
});
【问题讨论】:
标签: python selenium interceptor browsermob-proxy