好吧,为了完整起见,我将在这里添加我发现的最佳答案,并在Mark Pilgrim的Dive Into Python一书中找到它。
以下是用于列出网页中所有URL的代码:
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)
import urllib, urllister
usock = urllib.urlopen("http://diveintopython.net/")
parser = urllister.URLLister()
parser.Feed(usock.read())
usock.close()
parser.close()
for url in parser.urls: print url
感谢所有的答复。