我需要向爬虫提供对私人 wiki 的访问权限。
wiki 对所有匿名用户关闭 - 您必须登录才能查看内容,但我需要提供单个爬虫(由用户代理字符串和单个 IP 标识)完全访问权限,以便可以索引内容. 它是一个内部爬虫,因此只有在成功登录后才能访问其资源。
关于如何启用对单个客户端的访问(而不是用户,因为爬虫无法将自己登录到 wiki)的任何建议?
我需要向爬虫提供对私人 wiki 的访问权限。
wiki 对所有匿名用户关闭 - 您必须登录才能查看内容,但我需要提供单个爬虫(由用户代理字符串和单个 IP 标识)完全访问权限,以便可以索引内容. 它是一个内部爬虫,因此只有在成功登录后才能访问其资源。
关于如何启用对单个客户端的访问(而不是用户,因为爬虫无法将自己登录到 wiki)的任何建议?
这个问题其实是有解决办法的。正如我提到的,爬虫将使用特定的 IP,并且只有爬虫才能使用它。如此快速和肮脏但仍然是一种文明的方式是:
$crawler_ip = '1.2.3.4';
if ( $_SERVER['REMOTE_ADDR'] == $crawler_ip ) {
$wgGroupPermissions['*']['read'] = true;
}
很简单吧?:)
如果您有权访问数据库,则可以在诸如 solar 之类的系统中使用数据库爬虫来为您执行此操作。
您可以为您的爬虫创建一个自定义用户组,假设我们称之为“爬虫”。因为无论如何它都必须登录,那将是最简单的解决方案。
只需像这样授予它读取权限:
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['crawler']['read'] = true;
参考:http ://www.mediawiki.org/wiki/Manual:User_rights#Changing_group_permissions
编辑嗯等等,我看错了。爬虫可能不是登录帐户吧?稍等,检查您是否可以为 IP 设置权限。