获取维基百科文章的第一行

我有一篇维基百科文章,我想从文章中获取第一个z行(或第一个x字符,或第一个y字,无所谓)。

问题是:我可以通过API或者解析的HTML(通过直接的HTTP-Request,最终在打印版本上)获得源Wiki-Text,但是如何找到显示的第一行? 通常来源(html和wikitext)以信息框和图像开头,第一个显示的实际文本位于代码的下方。

例如:维基百科上的阿尔伯特爱因斯坦(印刷版)。 查看代码,第一个真正的文本行“阿尔伯特爱因斯坦(发音为/ælbərtaɪnstaɪn/;德语:[albɐtaɪ̯nʃtaɪ̯n]; 1879年3月14日至1955年4月)是理论物理学家。 并不是一开始。 这同样适用于Wiki-Source,它以相同的信息框开始,依此类推。

那么你将如何完成这项任务? 编程语言是java,但这不应该。

我想到的一个解决方案是使用xpath查询,但是这个查询对于处理所有的边界情况将会非常复杂。 [更新]这并不复杂,请参阅下面的解决方案![/ update]

谢谢!


你不需要。

API的exintro参数仅返回文章的第一部分(第0部分)。

例如: api.php?action = query&prop = extracted&exintro&explaintext&titles = Albert%20Einstein

还有其他参数:

  • exchars字符提取的长度。
  • exsentences要返回的句子数量。
  • exintro仅返回第零部分。
  • exsectionformat用于明文提取的部分标题格式:

    wiki — e.g., == Wikitext ==
    plain — no special decoration
    raw — this extension's internal representation
    
  • exlimit要返回的提取的最大数量。 由于摘录的产生速度可能会很慢,因此对于仅限简介的摘录,整个页面摘录的限制限制为20;对于整页摘录,则限制为1。
  • explaintext返回纯文本提取。
  • excontinue当有更多结果可用时,请使用此参数继续。
  • 来源:https://www.mediawiki.org/wiki/Extension:MobileFrontend#prop.3Dextracts


    我也是在同样的需求,并写了一些Python代码来做到这一点。

    该脚本以给定名称下载维基百科文章,使用BeautifulSoup解析它并返回前几个段落。

    代码位于http://github.com/anandology/sandbox/blob/master/wikisnip/wikisnip.py。


    维基百科提供摘要下载。 虽然这是一个相当大的文件(目前为2.5GB ),但它提供了所有文章所需的信息。

    链接地址: http://www.djcxy.com/p/62841.html

    上一篇: Get first lines of Wikipedia Article

    下一篇: Fetch a Wikipedia article with Python