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 件のコメント:
コメントを投稿