【问题标题】:How to enable access to a closed (private) wiki to a crawler?如何允许爬虫访问封闭的(私人)维基?
【发布时间】:2011-01-26 16:40:45
【问题描述】:

我需要向爬虫提供对私有 wiki 的访问权限。

wiki 对所有匿名用户关闭 - 您必须登录才能查看内容,但我需要提供单个爬虫(由用户代理字符串和单个 IP 标识)完全访问权限,以便查看内容可以被索引。它是一个内部爬虫,因此只有在成功登录后才能访问其资源。

关于如何启用对单个客户端(而不是用户,因为爬虫无法将自己登录到 wiki)的访问有任何建议吗?

【问题讨论】:

  • 你为什么要使用爬虫?为什么不使用默认搜索或 Lucene?
  • 因为 Wiki 只是 Intranet 的一部分。我想要实现的是全面搜索。我们目前正在为 Wiki 使用 Lucene 搜索插件,但是 Intranet 上有几个区域需要进行搜索。

标签: web-crawler mediawiki user-permissions


【解决方案1】:

这个问题其实是有解决办法的。 正如我提到的,爬虫将使用特定的 IP,并且只有爬虫才能使用它。如此快速和肮脏但仍然是一种文明的方式是:

$crawler_ip = '1.2.3.4';
if ( $_SERVER['REMOTE_ADDR'] == $crawler_ip ) {
    $wgGroupPermissions['*']['read'] = true;
}

简单吧? :)

【讨论】:

    【解决方案2】:

    如果您有权访问数据库,则可以在诸如 solar 之类的系统中使用数据库爬虫来为您执行此操作。

    【讨论】:

    • 我确实在使用 Solr,但我只关注网络上的教程,因此需要找到更多关于如何使用它进行数据库爬取的信息。我使用 Nutch 抓取页面。还没有完全理解它的整个哲学,因为我才开始玩它,所以我需要阅读更多关于它的内容。
    • 这听起来确实像您想要使用的方法,因为您已经决定不能以您想要的方式记录它。
    【解决方案3】:

    您可以为您的爬虫创建一个自定义用户组,假设我们称之为“爬虫”。因为无论如何它都必须登录,那将是最简单的解决方案。

    只需像这样授予它读取权限:

    $wgGroupPermissions['*']['read']    = false;
    $wgGroupPermissions['crawler']['read']    = true;
    

    参考:http://www.mediawiki.org/wiki/Manual:User_rights#Changing_group_permissions

    edit 嗯等等,我看错了。爬虫可能不是登录帐户吧?稍等,检查您是否可以为某个 IP 设置权限。

    【讨论】:

    • 这会有帮助吗?爬虫无法登录。MediaWiki 将如何识别爬虫并将其分配给“爬虫”组?
    • 不,抱歉,我无法在不登录的情况下找到执行此操作的方法……除了实际爬取数据库而不是页面
    猜你喜欢
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    相关资源
    最近更新 更多