使用浏览器mobproxy以与在浏览器中相同的顺序获取HAR

时间:2019-01-12 17:22:53

标签: python selenium web-crawler browsermob-proxy browsermob

我正在抓取网站的网络数据,以查看哪些资源已加载到网站中,等等。为此,我使用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)

0 个答案:

没有答案
相关问题