這可能是一個非常簡單的任務,但我找不到任何幫助。我有一個網站,其格式爲www.xyz.com/somestuff/ID。我有我需要信息的ID列表。我希望有一個簡單的腳本去一個網站,並以簡單的形式ID_whatever_the_default_save_name_is在特定文件夾下載每個ID的(完整)網頁。Python來保存網頁
我可以運行一個簡單的python腳本來爲我做這個嗎?我可以手工完成,它只有75個不同的頁面,但我希望能夠用它來學習如何在將來做這樣的事情。
這可能是一個非常簡單的任務,但我找不到任何幫助。我有一個網站,其格式爲www.xyz.com/somestuff/ID。我有我需要信息的ID列表。我希望有一個簡單的腳本去一個網站,並以簡單的形式ID_whatever_the_default_save_name_is在特定文件夾下載每個ID的(完整)網頁。Python來保存網頁
我可以運行一個簡單的python腳本來爲我做這個嗎?我可以手工完成,它只有75個不同的頁面,但我希望能夠用它來學習如何在將來做這樣的事情。
Mechanize是一個很好的用python爬行web的軟件包。你的問題的一個簡單的例子是:
import mechanize
br = mechanize.Browser()
response = br.open("www.xyz.com/somestuff/ID")
print response
這只是抓住你的url並打印來自服務器的響應。
感謝您的開始,但我得到的語法無效,我如何將ID列表加載到此列表中,以便將它們以'ID_webpage'格式保存在同一文件夾中? – CJ12
我假設你在導入語句中得到了語法錯誤,因爲機械化不會默認使用python。至於其他的問題,一般來說,它不願提供一些代碼來顯示你迄今爲止所做的工作而尋求幫助,所以我只是提供一個總體概要。將ID存儲爲一個列表,將上面的代碼放入循環中,同時將開放行中的「ID」更改爲循環中正在迭代的當前ID,然後將該響應寫入文件。 – iCanHasFay
謝謝,我會考慮機械化。我的問題的很大一部分是它將網頁保存爲一個完整的網頁。這似乎並沒有這樣做。這是對代碼的編輯嗎? – CJ12
這可以使用urllib模塊簡單地在python中完成。這裏是在Python 3個簡單的例子:
import urllib.request
url = 'www.xyz.com/somestuff/ID'
req = urllib.request.Request(url)
page = urllib.request.urlopen(req)
src = page.readall()
print(src)
對於urllib的模塊的詳細信息 - >http://docs.python.org/3.3/library/urllib.html
謝謝,我正在尋找最終的產品保存爲一個完整的網頁html文件,我可以離線查看。此外,我想提供一個ID列表,並將它們保存在文件名爲ID_default_save_name的同一個地方 – CJ12
你想只是爲網站的HTML代碼?如果是這樣,只需在主機站點創建一個url變量,並隨時添加頁碼。我會用http://www.notalwaysright.com
import urllib.request
url = "http://www.notalwaysright.com/page/"
for x in range(1, 71):
newurl = url + x
response = urllib.request.urlopen(newurl)
with open("Page/" + x, "a") as p:
p.writelines(reponse.read())
做下面的任何一種解決方案爲您工作嗎? – Joe