现在程序: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)f = urllib2.urlopen("http://www.baidu.com/")if f.code == 200:parser = URLLister()parser.feed(f.read())f.close()for url in parser.urls:print url
2 回答
慕丝7291255
TA贡献1859条经验 获得超6个赞
可以在start_a里面改,一般是相对路径的话,都不是以http://开头的。所以你得判断一下,是否以http开头,否则,进行添加路径名的操作。
可以用find来做。比如
if href.find("http://") == 0:
_____pass #no deal
else:
_____addurl(href)
关于路径名的话,一般就是 域名 + 当前相对路径,
当然,也可以将正在爬的本页域名当参数传入,具体分情况处理。
慕哥6287543
TA贡献1831条经验 获得超10个赞
不过,不知道这几种相对路径都代表什么啊?
path
/path...
./path...
函数addurl需要分类讨论,来加域名,或者当前网页的路径
添加回答
举报
0/150
提交
取消