2012-12-23 79 views
0

我想寫一個Python腳本,從它的內容依賴於一個查詢字符串的網頁檢索源代碼。具體頁面是:http://www.billboard.com/charts/hot-100#/charts/hot-100?begin=1&order=position。這是Billboard Hot 100頁面,該頁面以10個頁面的組合形式顯示Hot 100。您可以控制通過「開始」查詢字符串項檢索的圖表位置,並返回10首包括「開始」號碼的歌曲。基本上,我想使用Windows計劃程序自動運行一個腳本,每週檢索10個頁面。我並不喜歡用Python來做這件事。無法從網頁檢索代碼,因爲查詢字符串?

我用下面的腳本,它檢索什麼似乎是在第一頁(職位1 - 10)。

import urllib 
urllib.urlretrieve("http://www.billboard.com/charts/hot-100#/charts/hot-100?begin=1&order=position",r'C:\g\filename.txt') 

然而,當我改變「開始」值11,它仍然檢索1 - 10也許網頁不知何故不得允許一個腳本這樣的行動?如果我不輸入查詢字符串的URL,它會返回第10個位置爲好,所以我想一個可能性是,查詢字符串沒有被考慮在所有的,因爲這可能指向需要一種不同的方法。

您可以提供任何幫助將不勝感激!

謝謝! (和節日快樂!)

+0

你肯定你被允許從該遠程站點竊取信息和數據? –

回答

0

您是否嘗試過在你的瀏覽器去http://www.billboard.com/charts/hot-100#/charts/hot-100?begin=11&order=position?你也會得到結果1-10。似乎begin的格式必須是10n + 1

2

你的代碼是可以正常使用。

當您在瀏覽器中提供時,您將獲得與由URL http://www.billboard.com/charts/hot-100#/charts/hot-100?begin=11&order=position生成的HTML數據相同的HTML數據。

這意味着,以檢索項從11到20的代碼是一個異步請求,如AJAX。

試試這個代碼,它似乎工作:

import urllib 
urllib.urlretrieve("http://www.billboard.com/charts/hot-100?begin=11&order=position",r'C:\g\filename.txt') 
+0

在這種情況下,使用螢火蟲檢查網頁在後臺或其他方面正在做什麼 –

+0

已更新答案... – ATOzTOA