Mri*_*lla 3 html python html-parsing
我正在使用以下代码段来提取页面上的所有链接HTMLParser.我得到了不少相对网址.如何将这些转换为域的绝对URL,例如www.exmaple.com
import htmllib, formatter
import urllib, htmllib, formatter
class LinksExtractor(htmllib.HTMLParser):
def __init__(self, formatter):
htmllib.HTMLParser.__init__(self, formatter)
self.links = []
def start_a(self, attrs):
if len(attrs) > 0 :
for attr in attrs :
if attr[0] == "href":
self.links.append(attr[1])
def get_links(self):
return self.links
format = formatter.NullFormatter()
htmlparser = LinksExtractor(format)
data = urllib.urlopen("http://cis.poly.edu/index.htm")
htmlparser.feed(data.read())
htmlparser.close()
links = htmlparser.get_links()
print links
Run Code Online (Sandbox Code Playgroud)
谢谢
你要
urlparse.urljoin(base, url[, allow_fragments])
Run Code Online (Sandbox Code Playgroud)
http://docs.python.org/library/urlparse.html#urlparse.urljoin
这允许您提供绝对或基本URL,并将其与相对URL连接.即使它们有重叠的部分,也应该有效.