2015-04-04 28 views
0

對不起,如果這是一個重複的,但我搜索了一下,沒有發現任何東西,也許我只是不知道該怎麼去搜索。Python2.7:獲取網站的html,href變成「javascript:void(0)」

我認爲這個問題告訴你一切。

我使用Python2.7來獲取網站的html。 之後,我想存儲一些關於該網站的數據(如鏈接等),並下載該網站上的一些文件(使用python自動執行)。

現在我面臨的問題,我想下載的鏈接之一的數值:「JavaScript的:無效(0)」

這裏是我的代碼:

import urllib2 
response = urllib2.urlopen('http://www.japanesepod101.com/2006/01/16/survival-phrases-5-taxi/') 
html = response.read() 
f = open("Workfile", "w"); 
f.write(html) 

我不「不想在去太多的細節,但看網站的HTML代碼時,我有這樣的元素:

<a class="media-download" download="" data-trackme="downloadaudio,33" href="http://media.libsyn.com/media/japanesepod101/029_S5_011606_jpod101.mp3" data-mode="audio">Download MP3<span class="download-tooltip" style="display: none;"><span class="corner"></span>Right Click &amp; 'Save As'</span></a> 

在我的文件,該文件creted該元素是這樣的:

<a class="media-download" data-trackme="downloadaudio,33" href="javascript:void(0)" data-mode="audio">Download MP3</a> 

如何獲取我的文件中的鏈接?

對於初學者(我)與蟒蛇&網站它看起來像javascript函數沒有被調用(因爲它不是在瀏覽器中打開?),是這種情況?

+0

這聽起來像網站可能會使用JavaScript生成其鏈接,以防止你正在嘗試做什麼。在使用Python複製它之前,您需要使用JavaScript調試器來弄清楚他們的網站如何操作。 – 2015-04-04 16:29:52

+1

嗯@JeremyBanks我也這麼認爲,但是我訪問了禁用JS執行的網站,並且鏈接在那裏。不知道爲什麼這些鏈接會以這種方式消失,不過 - 網站可能會根據useragent發送不同的數據(所以普通的瀏覽器可以使用普通的HTML)。 – vlaz 2015-04-04 16:33:00

+0

我是個白癡。這是我需要先登錄的網站...。 我會嘗試登錄併發布我的結果,也就是說,如果問題仍然存在... – Gamer2015 2015-04-04 17:09:49

回答

3

您可以使用硒,這將有助於加載JavaScript函數,然後爲你提供最終htmlpage

要安裝硒

pip install selenium 

這裏是解決方案。

from selenium import webdriver 

driver = webdriver.Firefox() 
driver.get('yoururl') 
htmlpage = driver.page_source 
outputfile = open('workfile','w') 
outputfile.write(htmlpage) 
outputfile.close() 
driver.close() 
相關問題