从维基百科文章中提取第一段(Python)

我如何使用Python从维基百科文章中提取第一段?

例如,对于阿尔伯特爱因斯坦来说 ,那将是:

阿尔伯特爱因斯坦(发音为/ælbərtaɪnstaɪn/;德语:[albɐtaɪnʃtaɪn](听); 1879年3月14日 - 1955年4月18日)是理论物理学家,哲学家和作家,被广泛认为是最有影响力和标志性的科学家和知识分子之一所有时间。 德国和瑞士的诺贝尔奖得主爱因斯坦经常被认为是现代物理学的父亲。[2] 他获得了1921年诺贝尔物理学奖,“因为他为理论物理学服务,特别是他发现了光电效应的规律。”[3]


前段时间,我做了两个课程,以纯文本形式获取维基百科文章。 我知道他们并不是最好的解决方案,但是您可以根据自己的需求进行调整:

wikipedia.py
wiki2plain.py

你可以像这样使用它:

from wikipedia import Wikipedia
from wiki2plain import Wiki2Plain

lang = 'simple'
wiki = Wikipedia(lang)

try:
    raw = wiki.article('Uruguay')
except:
    raw = None

if raw:
    wiki2plain = Wiki2Plain(raw)
    content = wiki2plain.text

我写了一个Python库,旨在使这非常简单。 在Github上检查一下。

要安装它,请运行

$ pip install wikipedia

然后,要获得文章的第一段,请使用wikipedia.summary函数。

>>> import wikipedia
>>> print wikipedia.summary("Albert Einstein", sentences=2)

版画

阿尔伯特爱因斯坦(德语:1879年3月14日 - 1955年4月18日)是德国出生的理论物理学家,他发展了广义相对论,这是现代物理学的两大支柱之一与量子力学一起)。 虽然他的质能等价公式E = mc2(被称为“世界上最着名的等式”)最为人所知,但他因为理论物理学的服务而获得了1921年的诺贝尔物理学奖,尤其是他发现了光电效应法则“。

就它的工作原理而言, wikipedia向MediaWiki API的移动前端扩展提出请求,该扩展返回维基百科文章的移动友好版本。 具体而言,通过传递参数prop=extracts&exsectionformat=plain ,MediaWiki服务器将解析Wikitext并返回所请求文章的纯文本摘要,直至并包含整个页面文本。 它也接受参数excharsexsentences ,这并不意外地限制了API返回的字符和句子的数量。


我做的是这样的:

import urllib
import urllib2
from BeautifulSoup import BeautifulSoup

article= "Albert Einstein"
article = urllib.quote(article)

opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')] #wikipedia needs this

resource = opener.open("http://en.wikipedia.org/wiki/" + article)
data = resource.read()
resource.close()
soup = BeautifulSoup(data)
print soup.find('div',id="bodyContent").p
链接地址: http://www.djcxy.com/p/62843.html

上一篇: Extract the first paragraph from a Wikipedia article (Python)

下一篇: Get first lines of Wikipedia Article