使用Nginx的UA过滤蜘蛛和网络爬虫
通过判断 user agent,在nginx中可以防止一些不想要的访问。
#禁止空UA和各种工具的抓取 if ($http_user_agent ~* "curl|wget|java|httpclient|okhttp|python|WinHttp|WebZIP|FetchURL|node-superagent|FeedDemon|Jullo|Indy Library|Alexa Toolbar|AskTbFXTV|CrawlDaddy|Feedly|Apache-HttpAsyncClient|UniversalFeedParser|ApacheBench|Microsoft URL Control|ZmEu|jaunty |DigExt|heritrix|Ezooms|FlightDeckReports|^$" ) { return 444; } #禁 蜘蛛 if ($http_user_agent ~* "bot|spider|Mediapartners-Google|Feedfetcher-Google|Yahoo|Youdao|Sogou|ia_archiver") { return 444; }
~*:表示不区分大小写的正则匹配,通过python关键字就可以过滤掉80%的Python爬虫
444 No Response: Nginx上HTTP服务器扩展。 服务器不向客户端返回任何信息,并关闭连接(有助于恶意软件的威胁)。
bot:表示只要ua里面包含 bot这个字符串就拒绝访问。
测试:
[vagrant@localhost gitbook-model]$ curl -I -A "JikeSpider" https://test.com curl: (52) Empty reply from server
0顶
0 踩
共 0 条评论