我正在做一个项目,我应该在其中点击横幅并获得重定向链。
为了不让我的页面被覆盖并使下一步更容易,我想我应该在横幅上 ctrl+click
并在另一个浏览器选项卡中打开它以获取 all 真正的 重定向链。
我研究了很多,但只发现目前的方法会转储 HAR 文件以获取重定向链。但是要获取 HAR 文件,应该先在标签页中打开 Developer Tools 窗口 中的Network 面板。但是,就我而言,在加载标签之前,新标签无法打开网络面板;我无法打开 网络面板 并重新加载页面,因为重定向链不是真实的。此外,嵌入式性能日志不适用于我的情况
谁能告诉我如何解决这些问题?还是我上面的任何部分都错了?任何建议将不胜感激,因为我确实已经研究了很长时间。
最佳答案
为了获得重定向链,您需要 HAR 文件。
有一些软件包将 selenium 与其他库相结合来实现这一点(以及其他添加)。
一个是browsermob-proxy .
BrowserMob Proxy allows you to manipulate HTTP requests and responses, capture HTTP content, and export performance data as a HAR file. BMP works well as a standalone proxy server, but it is especially useful when embedded in Selenium tests.
这是一个例子:
from browsermobproxy import Server
server = Server("path/to/browsermob-proxy")
server.start()
proxy = server.create_proxy()
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--proxy-server={0}".format(proxy.proxy)) #Configure chrome options
driver = webdriver.Chrome(chrome_options=chrome_options)
proxy.new_har("StackOverFlow")
driver.get("https://stackoverflow.com")
print(proxy.har)
还有其他库如selenium-wire具有类似的功能(以及其他功能)。
注意:无需打开网络面板。
确保download the proxy并添加Server的启动路径。
关于python - 如果我必须直接单击横幅并在另一个选项卡上打开它,如何使用 selenium 获取重定向链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67147262/