我已经四处寻找但没有得到太多帮助。这是我的问题。我想从维基百科上的门户页面开始,说Computer_science并转到其categories页面。该类别中有一些页面,并且有子类别的链接。我将访问其中一些页面并单独获取页面摘要。然后使用此类别页面中的指针进入下一级别,依此类推。
我知道C ++ / php / js / python。哪个最适合这里?我想在一天内做到这一点。我知道有一个api,但它对获取内容似乎没有帮助。
如果可用,我需要编程语言,库和公共代码的建议。 我还听说wiki不喜欢bot爬虫,我打算最多可以获得500个文档。这是一个问题吗?
非常感谢
答案 0 :(得分:2)
虽然您可以尝试查找与门户网站名称相同的类别(门户网站所在的类别)(使用API,您可以使用{{ 1}}),或从门户网站页面链接的类别页面(prop=categories
)。
任何这些语言都可行。您还可以选择perl,java,C#,objective-c或任何其他语言。可以找到不同质量的框架列表here或here。
API当然可以使用prop=links&plnamespace=14
为您提供内容。您甚至可以使用prop=revisions
查询“潜在客户”部分。 API还可以为您提供包含rvsection=0
的类别中的网页列表以及使用list=categorymembers
的网页类别列表。
500页应该不是问题。如果您想要大部分文章,那么您需要考虑使用database dump。
有关详细信息,请参阅the API documentation。
答案 1 :(得分:2)
Sanjeev Satheesh,
你的目标让我感兴趣,但我没有时间深入研究有关各种方法的多产文件。
我在stackoverflow上搜索,这个问题已经多次提出,你会在以下链接中找到大量答案。我还收集了关于这个主题的各种链接。
在stackoverflow上
How to use wikipedia api if it exists?
Extract the first paragraph from a Wikipedia article (Python)
Fetch a Wikipedia article 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是一项社区努力,旨在从维基百科中提取结构化信息
答案 2 :(得分:1)
Python,抓取页面很有趣,为此我建议通过lxml.html建议xpath。
答案 3 :(得分:1)
虽然您正在寻找基于网络抓取工具的解决方案,但我建议您先来看看DBPedia。基本上它是RDF格式的维基百科。您可以下载整个数据库转储,对其运行SPARQL查询,或直接指向资源并通过遍历引用从那里开始探索。
例如,可以通过以下URL访问计算机科学类别:
答案 4 :(得分:1)
我会建议python用于快速开发。 你必须有两个模块。一个人将抓取所有可能的类别 内部类别(基本上是类别树),其他可以 从详细信息页面中提取信息(即普通维基页面) 维基百科支持特殊:在URL参数中导出 允许您获取XML响应。使用python的xpath 模块将帮助您。