所以我从HTML-Page制作了一个元素列表,并计算了这些元素的频率。但我只需要一些特定的元素,如" bb"和" nw"。所以我不知道他们在列表中的位置,我不知道如何将它们与其他元素分开。
到目前为止,这是我的代码:
from bs4 import BeautifulSoup
import urllib2
import re
import operator
from collections import Counter
from string import punctuation
source_code = urllib2.urlopen('https://de.wikipedia.org/wiki/Liste_von_Angriffen_auf_Fl%C3%BCchtlinge_und_Fl%C3%BCchtlingsunterk%C3%BCnfte_in_Deutschland/bis_2014')
html = source_code.read()
soup = BeautifulSoup(html, "html.parser")
text = (''.join(s.findAll(text=True))for s in soup.findAll('a'))
c = Counter((x.rstrip(punctuation).lower() for y in text for x in y.split()))
bb,nw=operator.itemgetter(1,2)(c.most_common())
print(bb,nw)
感谢您的帮助和任何提示。
答案 0 :(得分:2)
您可以使用过滤器:
relevant_items = ('bb', 'nw')
items = filter(lambda x: x[0] in relevant_items, c.most_common())
或者,您已经可以过滤理解:
c = Counter((x.rstrip(punctuation).lower() for y in text for x in y.split() if x in relevant_items))