我使用 python 2.7 和从下载的 selenium 驱动程序
pip install selenium
如何从网络请求中获取 http header 。
特别是我单击按钮/链接,服务器回复一个响应 包含 csv 文件。
如果我能从 http header 中获取文件名,那就太棒了。
另一个选项是访问浏览器的下载历史记录。
有什么想法可以实现上述目标吗?
最佳答案
Selenium 实际上无法做到这一点(捕获网络流量)。我建议使用第三方工具,例如 Browser Mob
我不知道您是否可以获得浏览器的下载历史记录...但作为解决方法,您可以 download files到一个空目录,然后将其称为您的下载历史记录。您还可以使用 os.path.getmtime 按下载时间对文件进行排名
import os
from selenium import webdriver
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", "/tmp/empty-dir")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")
browser = webdriver.Firefox(firefox_profile=fp)
browser.get("http://pypi.python.org/pypi/selenium")
browser.find_element_by_partial_link_text("selenium-2").click()
os.listdir("/tmp/empty-dir")
['selenium-2.44.0.tar.gz']
关于Selenium 获取http响应 header 或访问浏览器的下载历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26948670/