我正在尝试使用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