尝试在 Python 中使用带有 selenium 的 browsermob-proxy 获取一堆 url 的 HAR 文件。对于基本实现,我使用Browsermob 文档中的示例代码。我的代码如下
from browsermobproxy import Server
import psutil
import time
server = Server(“/path/to/bin/browsermob-proxy")
server.start()
proxy = server.create_proxy()
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_proxy(proxy.selenium_proxy())
driver = webdriver.Firefox(firefox_profile=profile)
proxy.new_har(“google”)
driver.get("http://www.google.com")
print(proxy.har) #ISSUE IN THIS LINE
server.stop()
driver.quit()
我能够初始化 browsermob-proxy,并让 selenium 在 firefox(和 chrome)上打开页面。当它到达“proxy.har”行时,它会抛出一个 JSONDecodeError: Expecting value: line 1 column 1 (char 0)
下面的错误跟踪
JSONDecodeError Traceback (most recent call last)
<ipython-input-2-f690bb4c2c08> in <module>()
----> 1 proxy.har
~/anaconda3/lib/python3.6/site-packages/browsermobproxy/client.py in har(self)
102 r = requests.get('%s/proxy/%s/har' % (self.host, self.port))
103
--> 104 return r.json()
105
106 def new_har(self, ref=None, options=None, title=None):
~/anaconda3/lib/python3.6/site-packages/requests/models.py in json(self, **kwargs)
890 # used.
891 pass
--> 892 return complexjson.loads(self.text, **kwargs)
893
894 @property
我已经尝试了很多方法来解决此问题,但无法使其正常工作
GET 请求返回 200
尝试了一些 json 函数来加载或解析为 utf-8 或去除无效字符
试过 simplejson
尝试更改 browsermob 端口
在不同的网络上尝试,以防阻止是由代理设置引起的
无论我尝试什么,我都会遇到同样的错误。我最初认为问题出在我的安装上。我是这样做的:
使用 pip3 安装硒(使用 python 3.6 和 Jupyter/iPython)
从https://bmp.lightbody.net/下载 browsermob 二进制文件
下载 geckodriver
在 /bin 中使用 ./browsermob-proxy 启动代理,并尝试使用 -port 选择端口
任何人都遇到过类似的问题,他们使用上述问题以外的任何方法解决了这些问题?
MMMHUHU
红颜莎娜
相关分类