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 に答える