如何使用selenium python webdriver下载PDF文件?

时间:2016-11-29 14:09:35

标签: python pdf selenium-chromedriver

网站:http://mbct.com/wp-content/uploads/Eisendrath-Jan-2016.pdf

错误:无法找到元素

也许这是因为当我不做某事时,下载图标会消失?

这是我的代码:

# coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys  
import time
import os
site = 'http://mbct.com/wp-content/uploads/Eisendrath-Jan-2016.pdf'
br = webdriver.Chrome()
br.get(site)
br.find_element_by_xpath('//*[@id="icon"]').click()

1 个答案:

答案 0 :(得分:0)

从评论转移到答案:

您似乎正在尝试在PDF中查找XML元素。与HTML不同,PDF与XML不重叠,因此无法正常工作。

如果您在浏览器中访问PDF,则显示的下载图标不是网页的一部分,因此即使PDF是XML,也不会有效。此外,还有一个很好的机会,即有多个图标,在这种情况下,您可能会点击错误的内容,而且可能无法点击(如果您使用此功能)实际网页上有下载按钮的非PDF文件。)

要从网站下载PDF,您不需要使用webdriver(或任何Python)。如果您在UNIX上,只需在shell脚本中使用curl加载它。可能只是一个简单的Windows等价物,但我不知道。如果你因任何原因想要使用Python,urllib.request(Python 3)或urllib2(Python 2)都可以这样做。

或者,如果它真的只是那个网站,你根本不需要运行自动程序 - 只需右键单击该链接并选择"将链接保存为..."或大多数浏览器中的等效文件。

相关问题