我正在抓取网站的网络数据,以查看哪些资源已加载到网站中,等等。为此,我使用browsermob-proxy
。由于文件名是UUID,并且我会爬网多个页面,因此我会使用selenium
自动执行此操作。 browsermob-proxy
返回一个HAR
,其中实际上可以看到网络数据。但是在这里,我注意到文件的顺序总是不同的。
例如,1.jpg
第一次被加载为第一个对象,而其下一次被加载为第二个对象。但是我需要与网页和浏览器中的DEV工具(表:网络)中显示的顺序完全相同。
我怎么能意识到这一点?
我的代码:
from browsermobproxy import Server
from selenium import webdriver
import psutil
import time
img_list = list()
for proc in psutil.process_iter():
if proc.name() == "browsermob-proxy":
proc.kill()
dict = {'port': 8090}
server = Server(path="/Users/X/X/browsermob-proxy-2.1.4/bin/browsermob-proxy", options=dict)
server.start()
time.sleep(1)
proxy = server.create_proxy()
time.sleep(1)
profile = webdriver.FirefoxProfile()
selenium_proxy = proxy.selenium_proxy()
profile.set_proxy(selenium_proxy)
driver = webdriver.Firefox(firefox_profile=profile)
proxy.new_har("....")
driver.get("http:......".format(XX))
callback = proxy.har
print(json.dumps(callback, indent=4))
server.stop()
driver.close()
time.sleep(10)