python html解析

python html解析,python,Python,我有以下问题: 我想解析html文件并从html文件中获取链接。我可以获得以下代码的链接: class MyHTMLParser(HTMLParser): links=[] def __init__(self,url): HTMLParser.__init__(self) self.url = url def handle_starttag(self, tag, attrs): try: if t

我有以下问题:

我想解析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链接。我该怎么做


我可以检查链接的结尾,如果它是我可以避免的特殊格式 将该链接附加到列表中。还有别的办法吗

您可以查看
'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 for
req.get\u method=lambda:“HEAD”
。可以找到有关此方法和发送HEAD请求的其他方法的更多信息。

我可以检查链接结束,如果是特定格式,我可以避免将该链接附加到列表中。还有其他方法吗?我可能会选择
request=urllib2.request(someurl),而不是使用
Range
;request.get_method=lambda:“HEAD”;response=urllib2.urlopen(request)
并从那里继续…@JonClements:非常感谢您提供的信息。我不知道你能这么做。@JonClements:req.get_method()返回
HEAD
意味着什么?似乎说它总是返回
GET
POST
?如果请求中存在有效负载,那么
GET\u方法是
POST
,否则它是
GET
-替换该方法是编写
请求的一种非常麻烦的方法。head(url)
。。。