仅获取维基百科摘要

2 投票
4 回答
3720 浏览
提问于 2025-04-16 13:14

我在网上找了很多资料,但没找到太多帮助。我的问题是,我想从维基百科的一个门户页面开始,比如说这个计算机科学页面,然后去它的分类页面。这个分类下有一些页面,还有指向子分类的链接。我会访问这些页面,单独获取页面的摘要。然后再根据这个分类页面的指引,继续往下查找。

我会一些编程语言,比如C++、PHP、JavaScript和Python。你觉得哪种语言最适合这个任务?我希望能在一天内完成。我知道有API,但好像对获取内容没什么帮助。

  1. 我需要获取页面
  2. 解析这些页面,找到分类的部分(或者是原始维基数据提供的元素),以获取摘要并访问其他页面。

我需要一些关于编程语言、库和公开代码的建议。如果有的话。我还听说维基不太喜欢机器人爬虫,我计划最多获取500个文档。这样会有问题吗?

非常感谢!

4 个回答

1

用Python来抓取网页很有意思。为了实现这个,我建议使用lxml.html中的xpath工具。

1

我建议使用Python来快速开发。你需要有两个模块。一个模块负责爬取所有可能的分类,基本上就是一个分类树;另一个模块则用来从详情页面提取信息(也就是普通的维基百科页面)。维基百科在网址参数中支持special:export,这样你就可以获取到XML格式的响应。使用Python的xpath模块会对你很有帮助。

3

并不是所有的门户都有对应的分类,不过你可以试着找找看有没有和门户同名的分类,或者看看这个门户页面所在的分类(你可以通过API用 prop=categories 来查询),还可以查看从门户页面链接过来的分类页面(用 prop=links&plnamespace=14)。

这些语言都可以用。你也可以选择perl、java、C#、objective-c,或者其他几乎任何语言。关于各种质量的框架列表可以在这里或者这里找到。

API确实可以给你内容,使用 prop=revisions 就可以了。你甚至可以只查询“引言”部分,用 rvsection=0。API还可以给你某个分类下的页面列表,使用 list=categorymembers,以及某个页面的分类列表,用 prop=categories

500个页面应该没问题。如果你想要获取大量的文章,建议你查看一下数据库下载

详细信息请查看API文档

撰写回答