我正在通过Selenium Python Script从Chrome for YouTube下载HAR。 代码段:
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--proxy-server={0}".format(url))
chrome_options.add_argument("--enable-quic")
self.driver = webdriver.Chrome(chromedriver,chrome_options = chrome_options)
self.proxy.new_har(args['url'], options={'captureHeaders': True})
self.driver.get(args['url'])
result = json.dumps(self.proxy.har, ensure_ascii=False)
我想在每次下载HAR时都使用QUIC,但是当我通过Wireshark查看数据包时,Selenium驱动程序仅使用TCP。有没有办法强制Chrome驱动程序使用QUIC?或者BMP有替代品吗?
在这个问题How to capture all requests made by page in webdriver? Is there any alternative to Browsermob?中已经向Firefox提出了类似的问题,并且单独使用Selenium解决方案而不需要任何BMP。那么Chrome可能吗?
答案 0 :(得分:0)
此问题的解决方法可能是:正常启动Chrome(使用默认配置文件或创建其他配置文件)并手动启用quic。然后在加载个人资料的情况下启动chromedriver。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=/home/user/.config/google-chrome")
driver = webdriver.Chrome(executable_path="/home/user/Downloads/chromedriver", chrome_options=options)