2014-09-24 50 views
-2

我是Python新手,想弄清楚如何編寫一個腳本來下載HTML頁面的內容。我想在做類似的:使用python下載幾個html頁面的內容

Y = 0 
X = "example.com/example/" + Y 
While Y != 500: 
(code to download file), Y++ 
if Y == 500: 
break 

所以(Y)是文件名,我需要從example.com/example/1下載文件,一路直到文件編號500,無論文件類型。

+3

很少的代碼到目前爲止是有效的Python - 縮進是非常重要的,Python中沒有按」例如,你有'++'增量,你不能連接字符串和整數。你需要澄清你想要做什麼 - 下載文件,抓取HTML或其他東西? – jonrsharpe 2014-09-24 14:38:25

+0

我試圖從網站下載幾個文件。他們是由我的老闆發送給我的視頻/音頻/圖片/ Word文件的混合體。我正在學習編程,我問自己:爲什麼不寫一個代碼來下載所有的文件,並且一箭雙飛。我正在使用python 3.4 – q8mind 2014-09-24 14:49:05

+1

也許你應該採取更小的步驟:1.如何在給定URL的情況下下載一個文件。 2.您如何創建一系列網址。 3.你如何迭代2並將它們傳遞給1. – jonrsharpe 2014-09-24 14:50:49

回答

0

閱讀本official docs page

該模塊提供了通過萬維網獲取數據的高級接口。

特別是,urlopen()函數類似於內置函數open(),但接受通用資源定位符(URL)而不是文件名。

有些限制適用 - 它只能打開URL進行閱讀,並且沒有可用的查找操作。

所以,你有這樣的代碼:

import urllib 
content = urllib.urlopen("http://www.google.com").read() 
#urllib.request.urlopen(...).read() in python 3 
+0

@jonrsharpe ty:D不知道如何縮放文檔,就像你一樣。 – 2014-09-24 15:02:42

+0

沒問題 - 它是引號('「'),而不是編輯視圖中的大括號('{}')按鈕。 – jonrsharpe 2014-09-24 15:04:24

+0

@LuisMasuelli你可以探索社區幫助看到更多的格式化語法。十分有趣。 – stanleyxu2005 2014-09-24 15:05:18

0

下面的代碼應滿足您的需要。它將下載500個網頁內容並將其保存到磁盤。

import urllib2 

def grab_html(url): 
    response = urllib2.urlopen(url) 
    mimetype = response.info().getheader('Content-Type') 
    return response.read(), mimetype 

for i in range(500): 
    filename = str(i) # Use digit as filename 
    url = "http://example.com/example/{0}".format(filename) 
    contents, _ = grab_html(url) 
    with open(filename, "w") as fp: 
     fp.write(contents) 

注:

+0

這將不起作用 - 試圖用各種字符串連接「i」(這是一個整數)時'TypeError'。 – jonrsharpe 2014-09-24 14:58:21

+0

不會'url =「http://example.com/example/」+ i'仍然串聯一個字符串和整數? – 2014-09-24 15:00:25