使用python selenium从javascript链接下载csv文件

时间:2018-01-11 11:51:57

标签: javascript python csv selenium web-scraping

我正在尝试下载csv文件,该文件可通过单击标题为“导出数据”的按钮获得。在this webpage。鉴于按钮运行javascript程序,我试图利用selenium。我下面的当前尝试生成错误消息:

  

" WebDriverException:未知错误:缺失或无效' entry.level'     (会话信息:chrome = 63.0.3239.132)     (驱动信息:chromedriver = 2.27.440174(e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform = Windows NT 10.0.16299 x86_64)"

chrome_path = path
driver=webdriver.Chrome(chrome_path)
url = 'http://www.fangraphs.com/projections.aspx?pos=all&stats=bat&type=fangraphsdc&team=0&lg=all&players=0&sort=24%2cd'
driver.get(url)
driver.find_element_by_xpath('//*[@id="ProjectionBoard1_cmdCSV"]').click()

错误发生在最后一行代码上。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

根据URL您已将WebElementExport Data的文字分享在<a>标记内。因此,您可以使用以下代码行单击该链接:

driver.find_element_by_link_text("Export Data").click()

但是这个解决方案仍然失败,因为您的主要问题是您使用的二进制文件中的版本兼容性,如下所示:

  • 您正在使用 chromedriver=2.27.440174
  • chromedriver=2.27.440174 的发行说明明确提及以下内容:
  

<强> Supports Chrome v55-57

  • 您正在使用 chrome=63.0.3239.132
  • chromedriver=2.34 的发行说明明确提及以下内容:
  

<强> Supports Chrome v61-63

  • 我们不知道 Selenium Version Info
  • 我们不知道 java.version

解决方案

  • JDK升级到最近的级别 JDK Version 8 Update 151
  • ChromeDriver保持在 ChromeDriver v2.34 级别。
  • Chrome保持在 Chrome v63.x 级别。
  • Selenium升级到当前级别 Version 3.8.1
  • 执行Test