私はPythonで辞書を作成することを検討しています。ここで、キーはhtmlタグ名であり、値はタグが出現した回数です。美しいスープや何か他のものでこれを行う方法はありますか?
33698 次
3 に答える
32
BeautifulSoupはHTMLの解析に非常に適しているので、この目的に使用することもできます。それは非常に簡単です:
from bs4 import BeautifulSoup as BS
def num_apperances_of_tag(tag_name, html):
soup = BS(html)
return len(soup.find_all(tag_name))
于 2012-12-13T05:19:17.307 に答える
11
BeautifulSoup では、検索条件を省略してすべてのタグを検索できます。
# print all tags
for tag in soup.findAll():
print tag.name # TODO: add/update dict
出現回数だけに関心がある場合、 BeautifulSoup は少しやり過ぎかもしれません。その場合は、HTMLParser
代わりに次を使用できます。
from HTMLParser import HTMLParser
class print_tags(HTMLParser):
def handle_starttag(self, tag, attrs):
print tag # TODO: add/update dict
parser = print_tags()
parser.feed(html)
これにより、同じ出力が生成されます。
あなたの辞書を作成するには、{ 'tag' : count }
次を使用できますcollections.defaultdict
。
from collections import defaultdict
occurrences = defaultdict(int)
# ...
occurrences[tag_name] += 1
于 2012-12-13T05:25:27.480 に答える