HTMLParserの使い方がぐぐってもあんまりいい方法が出てこなかったのでブログに書きます。
よく使うりんくの抽出ならびにそのばりゅーを取得するクラスです。もっとうまくかけるはずだけどめんどいのであしからず。。。。w 必要な方はカスタマイズなさってください(。◕ ∀ ◕。)
#!/usr/bin/env python # encoding: utf-8 from HTMLParser import HTMLParser class My_parser(HTMLParser):# def __init__(self): HTMLParser.__init__(self) self.is_a =False self.href = None self.val = None self.data = [] def handle_starttag(self,tagname,attribute): if tagname.lower() == "a": #aタグの始まり時にself.is_aをTrueに self.is_a = True for i in attribute: if i[0].lower() == "href": self.href =i[1] def handle_endtag(self,tag): if tag.lower() == "a": #おわりにはself.is_aをFalseに self.is_a = False self.data.append({ "url":self.href, "val":self.val }) self.href = None self.val = None def handle_data(self,data): #atagの中にいる時だけばりゅーを代入 if self.is_a is True: self.val = data def main(): html =""" <h3>test</h3> <div> <a href="hello.html">hello</a> <a href="world.html">world</a> </div> """ parser = My_parser() parser.feed(html) print [item for item in parser.data] #[{'url': 'hello.html', 'val': 'hello'}, {'url': 'world.html', 'val': 'world'}] if __name__ == '__main__': main()
0 件のコメント:
コメントを投稿