Java 如何抓取整个维基百科?

Java 如何抓取整个维基百科?,java,web-crawler,wikipedia,websphinx,Java,Web Crawler,Wikipedia,Websphinx,我尝试了WebSphinx应用程序 我意识到,如果我把wikipedia.org作为起始URL,它将不会进一步爬行 因此,如何真正抓取整个维基百科?谁能给我一些指导方针吗?我是否需要特别查找这些URL并放置多个起始URL 任何人都可以通过usng WebSphinx的API教程推荐好的网站吗?如果你的目标是抓取所有维基百科,你可能需要查看可用的数据库转储。请参阅。您可能需要从一篇随机文章开始,然后从该文章开始抓取所有可以访问的文章。当该搜索树已耗尽时,从一篇新的随机文章开始。你可以用你认为会带来

我尝试了WebSphinx应用程序

我意识到,如果我把wikipedia.org作为起始URL,它将不会进一步爬行

因此,如何真正抓取整个维基百科?谁能给我一些指导方针吗?我是否需要特别查找这些URL并放置多个起始URL


任何人都可以通过usng WebSphinx的API教程推荐好的网站吗?

如果你的目标是抓取所有维基百科,你可能需要查看可用的数据库转储。请参阅。

您可能需要从一篇随机文章开始,然后从该文章开始抓取所有可以访问的文章。当该搜索树已耗尽时,从一篇新的随机文章开始。你可以用你认为会带来最多文章的术语来搜索,或者从头版的特色文章开始


另一个问题:为什么WebSphinx没有爬得更远?wikipedia是否会阻止识别为“WebSphinx”的机器人程序?

我不确定,但wikipedia的robots.txt可能会阻止WebSphinx的用户代理程序


除了使用上面提到的Wikipedia数据库转储,您还可以使用Wikipedia的API执行查询,例如检索100篇随机文章


我认为您无法为此选择所需的配置。切换到高级,爬网子域,取消页面大小和时间限制


然而,WebSphinx可能无法抓取整个Wikipedia,它会随着更大的数据而变慢,最终会在使用200 MB内存时停止。我推荐你,还有。

看看维基百科的结构化版本。

+1。通过HTTP爬行Wikipedia是不礼貌的,会给服务器增加很多额外的负载。@GregHewgill,这是一个相当假设的说法。这取决于你爬的地点有多快,无论你尊重Root.txt指令和你认为“额外的额外负载”意味着什么。根据维基百科的说法,“欢迎使用友好、低速的机器人来查看文章页面,但请不要使用动态生成的页面。”-爬虫程序通常不是为解析维基百科特定的xml文档而设计的,这些文档中充满了维基标记,因此,仅仅为wikipedia.com创建一个单独的系统来解析过时的xml转储似乎很愚蠢。我不明白:如果允许友好爬网,为什么他们不允许robots.txt中有这么多爬网程序?