2016-11-29 161 views
0

網站:http://mbct.com/wp-content/uploads/Eisendrath-Jan-2016.pdf如何使用selenium python webdriver下載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() 
+0

您似乎試圖在PDF中查找XML元素。與HTML不同,PDF不與XML重疊。如果您在瀏覽器中訪問PDF,則顯示的下載圖標不是網頁的一部分。 –

+0

如果您的目標看起來像下載PDF文件一樣,那麼您可以通過以您喜歡的任何方式下載URL來實現這一目標 - 您不需要使用webdriver(或任何Python) ,只需在curl中加載一個shell腳本即可。如果你確實想使用Python,'urllib.request'(Python 3)或'urllib2'(Python 2)就可以做到。 –

回答

0

從評論轉入回答:

你似乎是試圖找到一個PDF的XML元素。與HTML不同,PDF不與XML重疊,所以這不起作用。

如果您在瀏覽器中訪問PDF時出現的下載圖標不是網頁的一部分,所以即使PDF是XML,也無法工作。此外,有一個很好的機會,有多個圖標,在這種情況下,你可能會點擊錯誤的東西,它可能不是可點擊的(如果你正在使用這個非PDF版本的東西,下載按鈕實際的網頁)。

要從網站下載PDF ...你不應該需要使用webdriver(或任何Python)。如果你在UNIX上,只需在curl中加載它。可能有一個簡單的Windows等價物,但我不知道它。如果你確實想使用Python,urllib.request(Python 3)或urllib2(Python 2)可以做到這一點。

或者,如果它確實只是該網站,則根本不需要運行自動程序 - 只需右鍵單擊鏈接並在大多數瀏覽器中選擇「保存鏈接爲...」或同等功能即可。

相關問題