1

我有以下问题:

我想解析 html 文件并从 html 文件中获取链接。我可以使用以下代码获取链接:

class MyHTMLParser(HTMLParser):
    links=[]
    def __init__(self,url):
        HTMLParser.__init__(self)
        self.url = url

    def handle_starttag(self, tag, attrs):
        try: 
            if tag == 'a':
                for name, value in attrs:
                    if name == 'href':
                        if value[:5]=="http:":
                            self.links.append(value)
        except: 
            pass

但我不想获取音频文件、视频文件等。我只想获取 html 链接。我怎样才能做到这一点?

4

1 回答 1

3

我可以检查链接结尾,如果它是特定格式,我可以避免将该链接附加到列表中。还有其他方法吗?

你可以看看'Content-Type'标题:

import urllib2
url = 'https://stackoverflow.com/questions/13431060/python-html-parsing'
req = urllib2.Request(url)
req.get_method = lambda : 'HEAD'    
response = urllib2.urlopen(req)
content_type = response.headers.getheader('Content-Type')
print(content_type)

产量

text/html; charset=utf-8

非常感谢@JonClements req.get_method = lambda : 'HEAD'。可以在此处找到有关此方法和发送 HEAD 请求的替代方法的更多信息。

于 2012-11-17T14:20:13.360 回答