python 对相对路径的识别

现在程序:classURLLister(SGMLParser):defreset(self):SGMLParser.reset(self)self.urls=[]defs... 现在程序:
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
问题:
抓到的URL有些是相对路径,怎么识别出来然后让他自动把URL连接上
addurl()能给点代码吗 新手。。。
展开
 我来答
king6o60
2009-04-29 · TA获得超过872个赞
知道小有建树答主
回答量:1356
采纳率:0%
帮助的人:939万
展开全部
可以在start_a里面改,一般是相对路径的话,都不是以http://开头的。所以你得判断一下,是否以http开头,否则,进行添加路径名的操作。
可以用find来做。比如
if href.find("http://") == 0:
_____pass #no deal
else:
_____addurl(href)
关于路径名的话,一般就是 域名 + 当前相对路径,
当然,也可以将正在爬的本页域名当参数传入,具体分情况处理。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
地瓜178
2009-04-30 · 超过23用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:36万
展开全部
楼上正解

不过,不知道这几种相对路径都代表什么啊?
path
/path...
./path...

如楼上所说,函数addurl需要分类讨论,来加域名,或者当前网页的路径
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式