2016-03-25 00:00更

好吧,有时候想不出名都不容易
在后台看到python-requestsCPython竟然还有UA为空的爬虫,哥们,不带这么玩的
看了一下浏览器User-Agent大全,您就不能随便模仿一个UA来爬吗

2015-11-22 22:36

看了下日记
好多爬虫,个人小站
爬什么爬!有什么好爬的

不要流量不要出名!!!

果断ban之:在域名.confserver设置为

server {
server_tokens off; # 不透露 nginx 的版本
#禁止指定UA及UA为空的访问
if ($http_user_agent ~ "WinHttp|WebZIP|FetchURL|node-superagent|java|Jullo|Apache-HttpAsyncClient|UniversalFeedParser|BOT/0.1|YandexBot|FlightDeckReports|Linguee Bot|HaosouSpider|AhrefsBot|MQQBrowser|Mobile Safari|bingbot|Digincore bot|Python-urllib|python-requests|CPython|micromessenger|YandexBot|meanpathbot|360Spider|YisouSpider|qihoobot|Baiduspider|UptimeRobot|Twitterbot|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|linkdexbot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|MSIE 6.0|Tomato Bot|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" )
        { 
        return 403; 
        }
#禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
     return 403;
}
#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
    return 403;
}
    ssl on;
...

重启nginx:service nginx restart
在ssh下测试:curl -I -A "YisouSpider" https://m69w.com
返回403则生效,看到没googlebot不止一个IP,禁IP段还要手动添加!!!

66.249.67.173 - - [23/Nov/2015:11:51:11 +0800] "GET /21.html HTTP/1.1" 403 162 "-" "Mozilla/5.0 (compatible; Googlebot/2.1;
+http://www.google.com/bot.html)"
66.249.67.164 - - [23/Nov/2015:12:47:09 +0800] "GET /reprint/2/ HTTP/1.1" 403 162 "-" "Mozilla/5.0 (compatible; Googlebot/2.1;
+http://www.google.com/bot.html)"

屏蔽360、scanv、QQ管家等IP扫描

这个方法需要开启 iptables ,把下面的IP段加入到 iptables 中。
如果没有启动可以联系联系服务商帮忙开启。独立的服务器和云主机可以自行安装启动。

vi banip.sh

#!/bin/bash
echo "banip"
iptables -A INPUT -s 221.204.203.0/24 -j DROP
iptables -A INPUT -s 183.136.133.0/24 -j DROP
iptables -A INPUT -s 183.60.211.0/24 -j DROP
iptables -A INPUT -s 220.181.55.0/24 -j DROP
iptables -A INPUT -s 101.226.4.0/24 -j DROP
iptables -A INPUT -s 140.207.197.0/24 -j DROP
iptables -A INPUT -s 220.170.91.0/24 -j DROP
iptables -A INPUT -s 171.8.167.0/24 -j DROP
iptables -A INPUT -s 180.153.235.0/24 -j DROP
iptables -A INPUT -s 122.143.15.0/24 -j DROP
iptables -A INPUT -s 27.221.20.0/24 -j DROP
iptables -A INPUT -s 222.186.189.0/24 -j DROP
iptables -A INPUT -s 202.102.85.0/24 -j DROP
iptables -A INPUT -s 61.160.224.0/24 -j DROP
iptables -A INPUT -s 112.25.60.0/24 -j DROP
iptables -A INPUT -s 182.140.227.0/24 -j DROP
iptables -A INPUT -s 221.204.14.0/24 -j DROP
iptables -I INPUT -s 123.151.39.0/24 -j DROP
iptables -I INPUT -s 182.140.168.0/24 -j DROP
iptables -I INPUT -s 219.153.15.0/24 -j DROP
iptables -I INPUT -s 220.181.158.0/24 -j DROP
iptables -I INPUT -s 111.161.51.0/24 -j DROP
iptables -I INPUT -s 123.125.160.0/24 -j DROP
service iptables save
echo "ok"

chmod +x banip.sh && ./banip.sh

nginx下添加禁止访问IP列表,屏蔽soso蜘蛛

新建 /usr/local/nginx/conf/blockips.conf 需要屏蔽的ip列表文件

vi /usr/local/nginx/conf/blockips.conf

加入以下代码:

#屏蔽soso蜘蛛IP
deny 113.108.12.154;    #此为搜搜蜘蛛IP
deny 124.115.0.0/24;    #此为屏蔽搜搜蜘蛛124.115.0.1 ~ 124.115.0.255整个网段IP
deny 124.115.4.0/24;    #此为屏蔽搜搜蜘蛛124.115.4.1 ~ 124.115.4.255整个网段IP

单独网站屏闭IP的方法:

在server"{}",在这个大括号内加入deny IP地址是限制某IP地址访问;allow IP地址是只允许某IP地址访问;
#屏蔽单个IP的命令是
deny 123.45.6.7
#封整个段即从123.0.0.1到123.255.255.254的命令
deny 123.0.0.0/8
#封IP段即从123.45.0.1到123.45.255.254的命令
deny 124.45.0.0/16
#封IP段即从123.45.6.1到123.45.6.254的命令是
deny 123.45.6.0/24

屏蔽整个网段的IP时有可能会造成错杀,不过几率很低。
继续,将blockips.conf 加入到nginx配置中

vi /usr/local/nginx/conf/nginx.conf

在http中加入代码

http {
    #载入禁止访问的IP配置
    include blockips.conf;    #处理好相对目录问题

    ...(以下省略)

相关百度搜索引擎蜘蛛所有ip作用的分析详解

http://help.baidu.com/webmaster/add#1

标签:nginx, 爬虫, bot

你的评论