获取维基百科摘要

时间:2011-03-08 11:14:29

标签: javascript python parsing web-crawler wikipedia

我已经四处寻找但没有得到太多帮助。这是我的问题。我想从维基百科上的门户页面开始,说Computer_science并转到其categories页面。该类别中有一些页面,并且有子类别的链接。我将访问其中一些页面并单独获取页面摘要。然后使用此类别页面中的指针进入下一级别,依此类推。

我知道C ++ / php / js / python。哪个最适合这里?我想在一天内做到这一点。我知道有一个api,但它对获取内容似乎没有帮助。

  1. 我需要获取网页
  2. 解析它们以获取类别div(或原始维基数据提供的元素)以获取摘要以及转到其他页面。
  3. 如果可用,我需要编程语言,库和公共代码的建议。 我还听说wiki不喜欢bot爬虫,我打算最多可以获得500个文档。这是一个问题吗?

    非常感谢

5 个答案:

答案 0 :(得分:2)

虽然您可以尝试查找与门户网站名称相同的类别(门户网站所在的类别)(使用API​​,您可以使用{{ 1}}),或从门户网站页面链接的类别页面(prop=categories)。

任何这些语言都可行。您还可以选择perl,java,C#,objective-c或任何其他语言。可以找到不同质量的框架列表herehere

API当然可以使用prop=links&plnamespace=14为您提供内容。您甚至可以使用prop=revisions查询“潜在客户”部分。 API还可以为您提供包含rvsection=0的类别中的网页列表以及使用list=categorymembers的网页类别列表。

500页应该不是问题。如果您想要大部分文章,那么您需要考虑使用database dump

有关详细信息,请参阅the API documentation

答案 1 :(得分:2)

Sanjeev Satheesh,

你的目标让我感兴趣,但我没有时间深入研究有关各种方法的多产文件。

我在stackoverflow上搜索,这个问题已经多次提出,你会在以下链接中找到大量答案。我还收集了关于这个主题的各种链接。

在stackoverflow上

Problem in Wikipedia API

Is there a Wikipedia API?

How to use wikipedia api if it exists?

Extract the first paragraph from a Wikipedia article (Python)

Web scraping with Python

Fetch a Wikipedia article with Python

Wikipedia with Python

MediaWiki API,主页:

http://www.mediawiki.org/wiki/API%3aMain_page

MediaWiki API文档页面

http://en.wikipedia.org/w/api.php

维基百科向感兴趣的用户提供所有可用内容的免费副本。

http://en.wikipedia.org/wiki/Wikipedia%3aDatabase_download

2006年8月4日在Wikimania Hacking Days快速设计的尽可能简单的API:

http://www.mediawiki.org/wiki/API:Wikimania_2006_API_discussion

如何开发用于维基媒体项目的机器人:

http://en.wikipedia.org/wiki/Wikipedia:Creating_a_bot

Wiki页面可以以特殊的XML格式导出

http://meta.wikimedia.org/wiki/Help:Export

Python Wikipedia Robot Framework:

http://pywikipediabot.sourceforge.net/

Python Wikipedia Robot Framework:

http://pywikipediabot.sourceforge.net/

用于与MediaWiki API交互的Python包:

http://code.google.com/p/python-wikitools/

DBpedia是一项社区努力,旨在从维基百科中提取结构化信息

http://dbpedia.org/About

答案 2 :(得分:1)

Python,抓取页面很有趣,为此我建议通过lxml.html建议xpath。

答案 3 :(得分:1)

虽然您正在寻找基于网络抓取工具的解决方案,但我建议您先来看看DBPedia。基本上它是RDF格式的维基百科。您可以下载整个数据库转储,对其运行SPARQL查询,或直接指向资源并通过遍历引用从那里开始探索。
例如,可以通过以下URL访问计算机科学类别:

  

http://dbpedia.org/page/Category:Computer_science

答案 4 :(得分:1)

我会建议python用于快速开发。 你必须有两个模块。一个人将抓取所有可能的类别 内部类别(基本上是类别树),其他可以 从详细信息页面中提取信息(即普通维基页面) 维基百科支持特殊:在URL参数中导出 允许您获取XML响应。使用python的xpath 模块将帮助您。