我的脚本在 Python 3.6 , Selenium 2.48 和 Firefox 41 上运行(无法升级,我正在使用公司)
我想使用Python和Selenium Webdriver从网站下载一些XML文件。我使用Firefox配置文件来避免对话框框架并将文件保存在特定位置。
Sub Demo()
Dim targetRange As Range, sourcerange As Range
Set sourcerange = Range("B1:B2") 'Works
Set targetRange = sourcerange.Offset(0, 1)
Debug.Print targetRange.Address
End Sub
程序会找到所有可下载的链接(已测试:工作)
profile = webdriver.firefox.firefox_profile.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.panel.shown", False)
profile.set_preference("browser.download.dir", dloadPath)
profile.set_preference("browser.helperApps.neverAsk.openFile","application/xml,text/xml")
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/xml,text/xml")
browser = webdriver.Firefox(firefox_profile=profile)
要下载文件,我使用Selenium的get()
links = []
elements = browser.find_elements_by_xpath("//a[contains(@href,'reception/')]")
for elem in elements:
href = elem.get_attribute("href")
links.append(href)
return links
我正在寻找的文件有一个非常具体的网址,意味着我无法使用请求或 urllib (2或3),我需要登录到网站并通过它导航,可以使用这些模块。
网址如下:
https://www.example.com/cft/cft/reception/filename.xml?user=xxxxxxxx&password=xxxxxxxx
这是html链接:
browser.get(fileUrl)
使用我的脚本,我可以访问该网站,浏览它但是当我得到文件URL时,会弹出对话框,没有我找到的原因。
该脚本在其他网站上运行良好,我认为问题是网址。
感谢您的帮助