0
如何获取维基百科文章中指定词的频率而不存储整篇文章然后处理它?对于例如,怎么可能会时代的“印”字这篇文章https://simple.wikipedia.org/wiki/India维基百科的文章频率文章
如何获取维基百科文章中指定词的频率而不存储整篇文章然后处理它?对于例如,怎么可能会时代的“印”字这篇文章https://simple.wikipedia.org/wiki/India维基百科的文章频率文章
在这里出现是一个头脑简单的例子逐行读取网页线。但是不能保证HTML被分成行。 (正是在这种情况下,在他们的1300。)
import re
import urllib.request
from collections import Counter
URL = 'https://simple.wikipedia.org/wiki/India'
counter = Counter()
with urllib.request.urlopen(URL) as source:
for line in source:
words = re.split(r"[^A-Z]+", line.decode('utf-8'), flags=re.I)
counter.update(words)
for word in ['India', 'Indian', 'Indians']:
print('{}: {}'.format(word, counter[word]))
输出
> python3 test.py
India: 547
Indian: 75
Indians: 11
>
,如果他们出现在页面上,而不仅仅是内容的HTML结构这也计算方面。
如果您想关注内容,请考虑使用首选MediaWiki API提取内容的Pywikibot python library,尽管它似乎基于您试图避免注意的“一次完成的页面”模型。无论如何,该模块的文档都指向您可能需要查看的类似但更高级的软件包列表。