浏览量:15595次
网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
为了让网站增加搜索引擎的收录,必须允许搜索引擎的抓取,大部分网站是允许并且欢迎搜索引擎来抓取的,除非一些特殊的网站会不允许抓取,但有时候,大量垃圾蜘蛛甚至爬虫访问很影响性能,特别是服务器配置不高的情况下,那么我们该怎样屏蔽掉垃圾蜘蛛呢?就必然本站最近一直出现一个 Bytespider 的的蜘蛛,不断的访问,造成服务器偶尔卡顿。必要时只能进行屏蔽蜘蛛,
一般来说,屏蔽蜘蛛的爬取有三种方法:
Robots 禁封
UA 禁封
IP 禁封
站长工具限制
一、Robots方式屏蔽
robots是网站跟爬虫间的协议,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。
下图说明 google、百度在抓取前 访问了robots.txt,而后再进行首页的抓取,因此我们可以在robots.txt 中现在某些制作的抓取
robots.txt 屏蔽蜘蛛如下,更多可以参考robots规则,下面的屏蔽 Bytespider 抓取所有内容,禁止所有搜索引擎抓取 /admin/ 目录
User-agent: Bytespider
Disallow: /
User-agent: *
Disallow: /admin/
二、UA方式屏蔽,本例中是nginx服务器,通常不建议使用此方法
步骤
1、进入nginx的配置目录,例如cd /usr/local/nginx/conf
2、添加agent_deny.conf配置文件
#禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 403;
}
#禁止指定UA及UA为空的访问
if ($http_user_agent ~ “FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms|^$” )
{
return 403;
}#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}
3、在网站相关配置文件中插入代码“include agent_deny.conf ;”。
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
include agent_deny.conf ;
}
4、重新加载nginx
/etc/init.d/nginx reload
三、禁止IP方式屏蔽蜘蛛,通常不建议使用此方法
IP方式屏蔽蜘蛛是指系统自带防火墙或第三方工具,拒绝蜘蛛 IP 连接,此措施最为严格,且针对有特定 IP 蜘蛛,如果 IP 是随机变动的, IP 禁封意义也不大。如果使用宝塔面板,可以直接在宝塔后台限制IP链接,也可以限制IP段。
四、站长工具方式屏蔽
有时候蜘蛛爬行过多、过快时,我们可以登录站长工具设置抓取的频率,百度站长工具可以设置。登录站长平台,可以设置每天最多抓取的次数,但不是所有的搜索引擎都有站长工具,所以此方式只能对百度有效,
网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
为了让网站增加搜索引擎的收录,必须允许搜索引擎的抓取,大部分网站是允许并且欢迎搜索引擎来抓取的,除非一些特殊的网站会不允许抓取,但有时候,大量垃圾蜘蛛甚至爬虫访问很影响性能,特别是服务器配置不高的情况下,那么我们该怎样屏蔽掉垃圾蜘蛛呢?就必然本站最近一直出现一个 Bytespider 的的蜘蛛,不断的访问,造成服务器偶尔卡顿。必要时只能进行屏蔽蜘蛛,
一般来说,屏蔽蜘蛛的爬取有三种方法:
Robots 禁封
UA 禁封
IP 禁封
站长工具限制
一、Robots方式屏蔽
robots是网站跟爬虫间的协议,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。
下图说明 google、百度在抓取前 访问了robots.txt,而后再进行首页的抓取,因此我们可以在robots.txt 中现在某些制作的抓取
robots.txt 屏蔽蜘蛛如下,更多可以参考robots规则,下面的屏蔽 Bytespider 抓取所有内容,禁止所有搜索引擎抓取 /admin/ 目录
User-agent: Bytespider
Disallow: /
User-agent: *
Disallow: /admin/
二、UA方式屏蔽,本例中是nginx服务器,通常不建议使用此方法
步骤
1、进入nginx的配置目录,例如cd /usr/local/nginx/conf
2、添加agent_deny.conf配置文件
#禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 403;
}
#禁止指定UA及UA为空的访问
if ($http_user_agent ~ “FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms|^$” )
{
return 403;
}#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}
3、在网站相关配置文件中插入代码“include agent_deny.conf ;”。
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
include agent_deny.conf ;
}
4、重新加载nginx
/etc/init.d/nginx reload
三、禁止IP方式屏蔽蜘蛛,通常不建议使用此方法
IP方式屏蔽蜘蛛是指系统自带防火墙或第三方工具,拒绝蜘蛛 IP 连接,此措施最为严格,且针对有特定 IP 蜘蛛,如果 IP 是随机变动的, IP 禁封意义也不大。如果使用宝塔面板,可以直接在宝塔后台限制IP链接,也可以限制IP段。
四、站长工具方式屏蔽
有时候蜘蛛爬行过多、过快时,我们可以登录站长工具设置抓取的频率,百度站长工具可以设置。登录站长平台,可以设置每天最多抓取的次数,但不是所有的搜索引擎都有站长工具,所以此方式只能对百度有效,
最后,大部分站长还是希望搜索引擎进行抓取的,只是不希望大量抓取是服务器被搞的卡顿或宕机,如果一刀切的进行屏蔽对收录也是有影响,换个角度想,我们可以优化程序,或者利用代码限制抓取的频次等等
策勒做网站就找春秋科技,春秋科技是一家专注于策勒网站建设、策勒网站设计、策勒网站制作、策勒做网站、策勒建网站等服务的策勒网站建设公司。已成功帮助10000多家企业实现网上盈利,为企业提供策勒网站建设一站式服务。
24小时服务热线:13733108860
[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【】,我们在确认后,会立即删除,保证您的版权。