【发布时间】:2010-12-06 15:01:18
【问题描述】:
我有一篇 Wikipedia-Article,我想从文章中获取前 z 行(或前 x 字符,或前 y 词,无关紧要)。
问题:我可以获取源 Wiki-Text(通过 API)或解析的 HTML(通过直接 HTTP 请求,最终在打印版本上),但我如何才能找到显示的第一行?通常,源代码(html 和 wikitext)以信息框和图像开头,而要显示的第一个真实文本位于代码中的某个位置。
例如: Albert Einstein on Wikipedia(印刷版)。查看代码,第一个真实文本行“Albert Einstein(发音为 /ˈælbərt ˈaɪnstaɪn/;德语:[ˈalbɐt ˈaɪ̯nʃtaɪ̯n];1879 年 3 月 14 日至 1955 年 4 月 18 日)是一位理论物理学家。”不是在开始。 Wiki-Source 也是如此,它以相同的信息框开头,依此类推。
那么你将如何完成这项任务?编程语言是java,但这应该没关系。
我想到的一个解决方案是使用 xpath 查询,但是这个查询对于处理所有边界情况会相当复杂。 [update]没那么复杂,看下面我的解决方案![/update]
谢谢!
【问题讨论】:
-
“我们认为系统不会填充信息数据库,而是从公共百科全书数据库(例如 Wikipedia)中检索内容” - fryan0911.com/2009/05/…
-
KMan:这只是检索文章的 Wiki 源。 OP 所述的问题仍然适用。
标签: parsing wikipedia wikipedia-api