为了账号安全,请及时绑定邮箱和手机立即绑定

问题: 抓到的URL有些是相对路径,怎么识别出来然后让他自动把URL连接上?

问题: 抓到的URL有些是相对路径,怎么识别出来然后让他自动把URL连接上?

慕容森 2022-07-14 11:11:11
现在程序: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)
关于路径名的话,一般就是 域名 + 当前相对路径,
当然,也可以将正在爬的本页域名当参数传入,具体分情况处理。


查看完整回答
反对 回复 2022-07-18
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

不过,不知道这几种相对路径都代表什么啊?
path
/path...
./path...
函数addurl需要分类讨论,来加域名,或者当前网页的路径

查看完整回答
反对 回复 2022-07-18
  • 2 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信