2011-03-08 101 views
1

我已经搜索周围,但没有得到太多的帮助。这是我的问题。我想从维基百科的门户页面开始,说Computer_science并去其categories页面。该类别中有一些页面,并且有子类别的链接。我将访问其中的一些页面,并单独获取页面摘要。然后通过这个类别页面的指针进入下一个级别,依此类推。仅获取维基百科摘要

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

  1. 我需要的网页
  2. 解析他们得到的类别DIV(或元素由原始数据维基提供)用于获取摘要以及去其他页面。

我需要的编程语言,库,如果可用的公共代码的建议。 我也听说wiki不喜欢漫游器爬虫,我打算最多可以获得500个文档。那是问题吗?

非常感谢

+0

@Sanjeev Satheesh它可以用正则表达式来进行提取结构化信息。如果它不是太复杂,它可能会迅速完成相对速度。我去维基百科和你的链接,看看你想要什么,并研究问题 – eyquem 2011-03-08 11:26:47

+0

@Sanjeev Satheesh我们如何从门户Computer_science到其分类页面?门户页面中的链接转到其分类页面是什么? – eyquem 2011-03-08 11:34:24

+0

向下滚动门户页面。这是一个名为'Categories'的链接。 – 2011-03-08 11:36:18

回答

2

不一定有对应于门户网站的类别,但是可以尝试寻找具有相同的名称作为门户网站的类别,类别的门户页面中(使用API​​,你可以用prop=categories查询此)或从门户页面链接的类别页面(prop=links&plnamespace=14)。

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

该API当然可以为您提供内容,使用prop=revisions。你甚至可以用rvsection=0来查询“lead”部分。 API还可以为您提供list=categorymembers类别的页面列表以及使用prop=categories的页面类别列表。

500页不应该是一个问题。如果您希望获得相当比例的文章,您可以考虑改用database dump。详细请参照the API documentation

+0

+1使用API​​肯定是要走的路。(删除我的答案) – 2011-03-08 12:18:45

+0

真棒!谢谢。我发现很难通过API文档纷至沓来。因此,我可以得到引线部分独太爽!你可以发布为我请2个完整的API调用,一个用于获取线索,另一个用于获取的类别。我一直缺少PARAMS之一,并得到一个错误。 – 2011-03-08 12:30:06

+0

@Sanjeev Satheesh使用API​​可能是更好的解决方案来获取维基百科的信息,甚至对于那些知道如何获得维基百科页面源代码的人来说也是如此。我目前不知道任何两种方式 – eyquem 2011-03-08 12:42:09

1

Python中,有刮页上,为此我将通过lxml.html建议XPath的乐趣。

+0

呃,wikitext不会像HTML一样不幸。它自己的定制wiki的文字:( – 2011-03-08 11:53:19

1

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

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

+0

该链接只是说'没有更多信息可用'。有没有其他的方式来访问它? – 2011-03-08 12:45:14

+0

@Sanjeev Satheesh:修正了URL,Category之后的冒号出于某种原因被编码为%3a。现在它指向正确的页面。 – 2011-03-08 13:46:06

1

我会建议得到了迅速发展蟒蛇。 你必须有两个模块。一个将抓取所有可能的类别 内部类别(基本上是一个类别树),其他可以从详细信息页面中提取信息(I。E标准的维基页面) 维基百科支持特殊:出口在网址PARAM这将 让你得到XML响应。使用Python的XPath 模块会帮助你。

2

Sanjeev Satheesh,

你的目标感兴趣的我,但我没有时间投身到的不同方式做你想要什么,多产的文档。

我搜索了计算器,这个问题已经提出了好几次,你会发现很多的答案在下面的链接。我还收集了关于这个问题的各个环节。

在计算器上

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

简单的,可能API迅速地在维基媒体国际会议黑客天于2006年8月4日设计:

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的维基百科机器人框架:

http://pywikipediabot.sourceforge.net/

Python的维基百科机器人框架:

http://pywikipediabot.sourceforge.net/

Python包与互动MediaWiki API:

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

DBpedia的是一个社区的努力,以维基百科

http://dbpedia.org/About

+1

Upvoted for this post?!我很惊讶,它只包括聚集的链接....我也意识到,现在只有在本页右侧的“链接”和“相关”下有链接... – eyquem 2011-03-08 15:29:58