Python 如何阅读网站&;以迭代方式保存har数据(我有一个包含1000个URL的CSV文件,但不能用唯一的名称保存文件)
本项目的目标是:在浏览器插件中测试10个adblocker,并在1000中运行,为1个adblocker检索1000个har数据,因此总数据集为10X1000(测试数据)+1000(原始数据)=11000 脚本在读取1个URL和保存1.har时运行平稳。但是,我有一个包含1000个URL的CSV列表,我想要的是分别从CSV和保存1-1000.har运行URL,而不覆盖 但是,我无法链接到保存部分。当我启动程序时,浏览器只是不断加载不同的URL,但只保存1个数据文件Python 如何阅读网站&;以迭代方式保存har数据(我有一个包含1000个URL的CSV文件,但不能用唯一的名称保存文件),python,selenium,har,Python,Selenium,Har,本项目的目标是:在浏览器插件中测试10个adblocker,并在1000中运行,为1个adblocker检索1000个har数据,因此总数据集为10X1000(测试数据)+1000(原始数据)=11000 脚本在读取1个URL和保存1.har时运行平稳。但是,我有一个包含1000个URL的CSV列表,我想要的是分别从CSV和保存1-1000.har运行URL,而不覆盖 但是,我无法链接到保存部分。当我启动程序时,浏览器只是不断加载不同的URL,但只保存1个数据文件 import csv from
import csv
from browsermobproxy import Server
from selenium import webdriver
import json
server = Server("D:\\browsermob-proxy-2.1.4\\bin\\browsermob-proxy.bat")
server.start()
proxy = server.create_proxy()
profile = webdriver.FirefoxProfile()
profile.set_proxy(proxy.selenium_proxy())
driver = webdriver.Firefox(firefox_profile=profile)
extension_dir = "C:\\Program Files (x86)\\Mozilla Firefox\\browser\\features\\"
# remember to include .xpi at the end of your file names
extensions = [
'adblock_plus-3.5-an+fx.xpi'
]
for extension in extensions:
driver.install_addon(extension_dir + extension, temporary=True)
proxy.new_har("qq")
path = "D:\websites.csv"
csvfile = open(path,'r')
reader = csv.reader(csvfile)
result = {}
for item in reader:
if reader.line_num ==1:
continue
result[item[0]] = item[1]
csvfile.close()
print(result)
for id, web in result.items():
website = web
driver.get(website)
server.stop()
driver.quit()
f = os.fdopen(fi, "w")
欢迎使用SO。为什么您不能将
proxy.har
保存到每个url所需名称的文件中。保存har不是问题,但自动访问1000个url并使用唯一名称保存1000个har是问题。在更新帖子之前,您有正确的逻辑,在每个结果web
中循环,但请确保proxy.new\har(web)
在driver.get(web)
之前的这个循环中。然后将“proxy.har”响应转储到json,并使用web+“\u har.har”打开一个文件
并在其中写入json转储。欢迎这样做。为什么您不能将proxy.har
保存到每个url所需名称的文件中。保存har不是问题,但自动访问1000个url并使用唯一名称保存1000个har是问题。在更新帖子之前,您有正确的逻辑,在每个结果web中循环e> ,但请确保在driver.get(web)
之前在此循环中proxy.new\u har(web)
。然后将“proxy.har”响应转储到json,并打开一个带有web+“\u har.har”
的文件,并将json转储写入其中。