nginx 禁止百度爬虫不起作用

王纪光 发布于 2015/05/25 11:48
阅读 1K+
收藏 0

 location / {

          if ($http_user_agent ~* (Baiduspider)) {

             return 403;

          }

}


百度爬虫最近很流氓,,,对一个页面爬的非常凶。。每天十几万的请求,,想禁止但是  在网上查 说按照上面配置久可以,,,可是配置后 重启nginx  依然不起作用。。求各路英雄  有经验的 给下建议

加载中
0
dsgfdsgf
dsgfdsgf
用 robots.txt 声明禁止抓指定内容
王纪光
王纪光
是的 我也尝试过了 robots.txt 放到根目录下 User-agent: Baiduspider/2.0 Disallow: / 还是不行
0
羊驼君
羊驼君
robots.txt 屁用,有几个搜索引擎是遵守robots协议的。。
王纪光
王纪光
回复 @张亦俊 : 嗯 确实 ,dt 的是 我放到 根目录下 就是不起作用。。。 User-agent: Baiduspider Disallow: / 网上也说的很清楚。。就是这个配置
张亦俊
张亦俊
百度是遵守的吧,你比如搜taobao,会看到robots.txt的提示
0
帖子列表
帖子列表
除了google等少数搜索引擎外,其他都是流氓。  我就奇怪了, 一个连基本的搜索都做不好的引擎,为什么还要破坏robot协议抓取信息,难道卖假药的会写robot规则禁止收录?
0
batcom
batcom

位置放置错误,不应该放在location / 这样只能禁止网站根的爬取. 应该用if语句  

当然有人不推荐nginx conf里面用if 认为是evil,但这个功能实现很简单应该不会出错

if ($http_user_agent ~* "360Spider|JikeSpider|Spider|spider|bot|Bot|2345Explorer|curl|wget|webZIP|qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|NSPlayer|bingbot")

       {

          return 403;

          }

王纪光
王纪光
回复 @batcom : 是的 只是这个借口 被一直爬。。。主要就是 想拒绝这个接口的,,这个借口其实用不到的。。。想禁用掉
batcom
batcom
回复 @王纪光 : 这个是精准匹配,肯定不能匹配你下面那么多后缀的。你直接上你nginx的最小配置吧
温习江湖
温习江湖
2345Explorer 中弹ヾ(*´∀`*)ノ
王纪光
王纪光
又或者说 我尝试了 这样 禁止 location /pages/onsale/sale_car_list.html { access_log /dev/null main; return 404; } 依然没起作用
王纪光
王纪光
我也尝试过 不放到 location 下。 直接放到外层,,
0
leo108
leo108

一天十几万的请求明显不可能是百度的行为,所以用robots.txt肯定是没用的。

改成 if ($http_user_agent ~* "Baiduspider") {试试看

王纪光
王纪光
回复 @leo108 : 是d 全是200
leo108
leo108
回复 @王纪光 : 你看nginx的access_log,这种请求的http返回码还是200?
王纪光
王纪光
这个 有试过,也是不行。
0
王纪光
王纪光

引用来自“leo108”的评论

一天十几万的请求明显不可能是百度的行为,所以用robots.txt肯定是没用的。

改成 if ($http_user_agent ~* "Baiduspider") {试试看

INFO  - request url, url: /pages/onsale/sale_car_list.html?seoUrlPosition03=wfi&seoUrl=/beijing/30-50/list-ma3-mi2007-mx2014-tt1-cy4-stzaishou-vt1&province=00001&listSeoParams=30-50/list-ma3-mi2007-mx2014-tt1-cy4-stzaishou-vt1, refer: null, ip: 10.159.47.53, userTag: null, username: null, session: 8BA83E3424281428E95CDDE46FAD36CF, usertag: null, logined: false, noregisteruser: null, noRegisterLogin: false, useragent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html), province: 00001, userprovince: null    全是这种请求,应该是百度吧
王纪光
王纪光
这个 倒不是 伪造不伪装到问题了。。现在是 nginx 的配置没起作用
leo108
leo108
useragent是可以伪造的
0
0
loki_lan
loki_lan
在这些大IT公司里面,君子约定都是狗屁
0
mickelfeng
mickelfeng

robots.txt根本没用

0
倪倪
我是直接禁的IP
王纪光
王纪光
deny IP 段?? 感觉有点危险
返回顶部
顶部