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()能给点代码吗 新手。。。 展开
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()能给点代码吗 新手。。。 展开
2个回答
展开全部
可以在start_a里面改,一般是相对路径的话,都不是以http://开头的。所以你得判断一下,是否以http开头,否则,进行添加路径名的操作。
可以用find来做。比如
if href.find("http://") == 0:
_____pass #no deal
else:
_____addurl(href)
关于路径名的话,一般就是 域名 + 当前相对路径,
当然,也可以将正在爬的本页域名当参数传入,具体分情况处理。
可以用find来做。比如
if href.find("http://") == 0:
_____pass #no deal
else:
_____addurl(href)
关于路径名的话,一般就是 域名 + 当前相对路径,
当然,也可以将正在爬的本页域名当参数传入,具体分情况处理。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询