堆栈:Windows 8.1, Python 3.4.3.4, Selenium 2.46, Chromedriver 2.16
我使用Selenium Python绑定和Chromedriver自动从以下URL下载:r'http://financials.morningstar.com/'
我设置了以下chromedriver首选项:
chromeOptions = webdriver.ChromeOptions()
prefs = {'download.default_directory':symbol_dir}
chromeOptions.add_experimental_option('prefs', prefs)
chromeOptions.add_extension(self.chromeUBlock_path)
chromedriver_path = self.chromedriver_path
此外,我还设置了以下selenium代码来运行下载,它可以正常工作并下载到正确的文件位置等:
^{pr2}$但是,使用以下缩写运行下载时(只需将balance-sheet
替换为income-statement
,如下所示):
BS_anl_statement = 'balance-sheet'
BS_anl_abbrev = 'bs'
剩下的Selenium代码和我得到的下载错误完全一样:
Failed-Path Too Long
这很奇怪,因为实际的文件路径并不太长。事实上,我在3个不同的目录中测试了下载,每个目录的文件路径都比上一个目录短。最后一个示例路径是:r"C:\mstar_data\\"
我卡住了。两次下载尝试之间的唯一区别是实际的CSV
链接。但即使在这种情况下,Income-Statement
下载url实际上也比Balance-Sheet
长,所以我又被卡住了。它们在这里:
I/S CSV url:
http://financials.morningstar.com/ajax/ReportProcess4CSV.html?&t=XNAS:ZUMZ®ion=usa&culture=en-US&cur=&reportType=is&period=12&dataType=A&order=asc&columnYear=5&curYearPart=1st5year&rounding=3&view=raw&r=573205&denominatorView=raw&number=3
B/S CSV url:
http://financials.morningstar.com/ajax/ReportProcess4CSV.html?&t=XNYS:A®ion=usa&culture=en-US&cur=&reportType=bs&period=12&dataType=A&order=asc&columnYear=5&curYearPart=1st5year&rounding=3&view=raw&r=558981&denominatorView=raw&number=3
任何关于这种不一致性的帮助都将是一个巨大的帮助,绝对感谢。谢谢。在
我找到了解决这个问题的方法。@Skandigraun是对的,有一段代码试图过早地使用下载的文件。在
我使用
Advanced Uninstaller
清除所有临时文件、internet历史记录等。 我重新启动了电脑。 我修改了以下关于Skandigraun注释的代码块:收件人:
^{pr2}$我补充道:
现在代码运行起来更加稳定。我相信测试文件是否存在的os调用发生得太快/太频繁,导致下载失败。我将
finally
语句添加到try/except
循环中以关闭浏览器,无论发生什么情况。这可以防止脚本在访问站点时出现问题、超时错误等时挂起相关问题 更多 >
编程相关推荐