如何阻止spyder / Nutch-2等爬虫访问特定页面?

我有一个Windows客户端应用程序,它使用托管在共享商业网络服务器中的php页面。 </ p>

在这个 php </ strong>页面中,我将返回一个加密的json。 另外在这个页面中我有一段代码来跟踪哪些IP正在访问这个php页面,我注意到有一个 spyder / Nutch-2 </ code>爬虫访问这个页面。</ p >

我在徘徊,爬虫可能找到一个未在任何搜索引擎中发布的页面。 我有办法阻止抓取工具访问此特定页面吗? </ p>

我应该使用 .htaccess </ code>文件进行配置吗?</ p>
</ div>

展开原文

原文

I have a Windows client application that consumes a php page hosted in a shared commercial webserver.

In this php page I am returning an encrypted json. Also in this page I have a piece of code to keep track of which IPs are visiting this php page, and I have noticed that there is a spyder/Nutch-2 crawler visiting this page.

I am wandering how is possible that a crawler could find a page that is not published in any search engines. I there a way to block crawlers from visiting this specific page?

Shall I use .htaccess file to configure it?

doukuang1950
doukuang1950 您可以在.htaccess文件中阻止抓取工具ip或基于名称的定义。但是,爬虫代理名称或IP地址可能会不时更改。请回答我的进一步细节
6 年多之前 回复
dpkt31779
dpkt31779 我以为他的意思是完全禁止它
6 年多之前 回复
duanli0453
duanli0453 -如何使用iptables禁止该特定URL(需要检查HTTP请求)的蜘蛛?
6 年多之前 回复
dtr87341
dtr87341 只是禁止IP。可以在apache中完成,但首选iptables或防火墙
6 年多之前 回复

5个回答



您可以通过以下方式禁止特定的抓取工具; </ p>

  RewriteEngine On 
RewriteCond% {HTTP_USER_AGENT}(spyder / Nutch-2)[NC]
#对于多块
#RewriteCond%{HTTP_USER_AGENT}(spyder / Nutch-2 | baidu | google | ...)[NC]
RewriteRule。* - [R = 403,L]
</ code> </ pre>

该爬虫可以更改代理名称,因此这可能不是解决方案。 您需要通过查看需要的IP地址来阻止该爬虫; </ p>

 命令拒绝,允许
Deny来自xxxx
</ code> </ pre>

但是,该机器人也可以更改他的IP地址。 这意味着,您需要跟踪访问日志。 并决定要阻止哪些代理并将其手动添加到列表</ p>
</ div>

展开原文

原文

You can forbid specific crawlers by doing thatfollowing;

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (spyder/Nutch-2) [NC]
#For multi block
#RewriteCond %{HTTP_USER_AGENT} (spyder/Nutch-2|baidu|google|...) [NC]
RewriteRule .* - [R=403,L]

That crawler, can change agent name, so this may not be the solution. You need to block that crawler by looking at ip address in need;

Order Deny,Allow
Deny from x.x.x.x

However, that bot can also change his ip address. This means, you need to track your access logs. And decide which agents to be blocked and add them to list manually



您确实可以使用 .htaccess </ code>。 robots.txt </ code>是另一种选择,但有些抓取工具会忽略此选项。

您还可以阻止特定的用户代理字符串。 (它们与抓取工具不同)</ p>

robots.txt:</ p>

 用户代理:* 
禁止:/
</ 代码> </ pre>

此示例告诉所有机器人不要访问网站:
您可以阻止特定目录</ p>

  Disallow:/ demo /

</ code> </ pre>

有关robots.txt 的更多信息< / p>
</ div>

展开原文

原文

You can indeed use a .htaccess. robots.txt is another option but some crawlers will ignore this. You can also block specific user agent strings. (They differ from crawler to crawler)

robots.txt:

User-agent: *
Disallow: /

This example tells all robots to stay out of the website: You can block specific directories

Disallow: /demo/

More information about robots.txt

dpdkqls6399
dpdkqls6399 确实是我的坏,我指的是robots.txt文件。
6 年多之前 回复
doushang7209
doushang7209 爬虫不能忽略.htaccess文件,我想你正在考虑一个robots.txt文件。
6 年多之前 回复



您可以使用.htaccess文件禁止特定的IP地址:</ p>

 拒绝订单 ,允许
Deny来自xxx.xx.xx.xx
</ code> </ pre>

其中xxx代表IP地址</ p>
</ div>

展开原文

原文

You can ban the particular IP address with .htaccess file:

Order Deny,Allow
Deny from xxx.xx.xx.xx

where xxx represents IP address

douweng7308
douweng7308 是的但是蜘蛛的名字和ip可以改变。 那种情况下的解决方案是什么?
6 年多之前 回复



关闭。 最好使用 robots.txt 文件。 链接的页面会说明为什么要设置一个以及如何设置它。 总结:</ p>


  1. 它避免浪费服务器资源,因为蜘蛛和机器人在页面上运行脚本。</ li>
  2. 它可以节省带宽。 </ li>
  3. 它可以消除webstats中的混乱。</ li>
  4. 您可以对其进行微调以仅排除某些机器人。</ li>
    </ ol>
    \ n

    我应该提一个警告。 一些蜘蛛被编码为忽略robots.txt文件,甚至会检查它以查看您不希望他们访问的内容。 但是,来自合法来源的蜘蛛将遵守robots.txt指令。</ p>
    </ div>

展开原文

原文

Close. It would be better to use a robots.txt file. The page linked goes through why you would want to set one up and how to do so. In summary:

  1. It avoids wasting server resources as the spiders and bots run the scripts on the page.
  2. It can save bandwidth.
  3. It removes clutter from the webstats.
  4. You can fine-tune it to exclude only certain robots.

One caveat I should mention. Some spiders are coded to disregard the robots.txt file and will even examine it to see what you don't want them to visit. However, spiders from legit sources will obey the robots.txt directives.

dpbl91234
dpbl91234 robots.txt不是解决方案。 此文件不是以编程方式阻止特定的爬网程序。 即使您在robots.txt文件中定义机器人名称,也需要特定的抓取工具来抓取您的网站
6 年多之前 回复



你可以使用.htaccess或其他选项来使用php代码。 在php代码的顶部只需输入如下内容:</ p>

  if(strpos($ _ SERVER ['HTTP_USER_AGENT'],'spyder / Nutch-2')!==  false){
die();
}
//此处的其余代码
</ code> </ pre>
</ div>

展开原文

原文

You could use .htaccess or another option would be to use php code. At the top of the php code simply put something like this:

if(strpos($_SERVER['HTTP_USER_AGENT'],'spyder/Nutch-2') !== false) {
    die();
}
//rest of code here

dsfs504545
dsfs504545 OP只讨论阻止返回json数组的单个php页面,而不是整个站点。
6 年多之前 回复
dqan70724
dqan70724 但是,爬虫仍然可以获取静态内容。 因为,apache默认直接提供静态竞争。 您还需要使用php来提供静态内容,以便通过您的php代码检测到cralwer。
6 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐