我正在嘗試使用python創建一個網站下載器。我對代碼:使用Python的網站下載器
找到的所有URL從頁面
下載指定網址
我需要做的就是遞歸下載頁面,如果該頁面中還有其他鏈接,我還需要下載它們。我試着結合上述兩個函數,但遞歸的東西不起作用。
的代碼給出如下:
1)
*from sgmllib import SGMLParser
class URLLister(SGMLParser):
def reset(self):
SGMLParser.reset(self)
self.urls = []
def start_a(self, attrs):
href = [v for k, v in attrs if k=='href']
if href:
self.urls.extend(href)
if __name__ == "__main__":
import urllib
wanted_url=raw_input("Enter the URL: ")
usock = urllib.urlopen(wanted_url)
parser = URLLister()
parser.feed(usock.read())
parser.close()
usock.close()
for url in parser.urls: download(url)*
2)這裏下載(網址)函數的定義如下:
*def download(url):
import urllib
webFile = urllib.urlopen(url)
localFile = open(url.split('/')[-1], 'w')
localFile.write(webFile.read())
webFile.close()
localFile.close()
a=raw_input("Enter the URL")
download(a)
print "Done"*
請幫助我如何結合這兩個代碼以「遞歸地」在網頁上下載新鏈接nloaded。
您確定要編寫自己的,而不是簡單地使用'wget'嗎? – NPE