php禁止网页抓取,服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站 - 龙笑天下...
我們都知道網(wǎng)絡(luò)上的爬蟲非常多,有對(duì)網(wǎng)站收錄有益的,比如百度蜘蛛(Baiduspider),也有不但不遵守 robots 規(guī)則對(duì)服務(wù)器造成壓力,還不能為網(wǎng)站帶來流量的無用爬蟲,比如 YY 蜘蛛(YisouSpider)。最近張戈發(fā)現(xiàn) nginx 日志中出現(xiàn)了好多宜搜等垃圾的抓取記錄,于是整理收集了網(wǎng)絡(luò)上各種禁止垃圾蜘蛛爬站的方法,在給自己網(wǎng)做設(shè)置的同時(shí),也給各位站長提供參考。
一、Apache
①、通過修改 .htaccess 文件
修改網(wǎng)站目錄下的.htaccess,添加如下代碼即可(2 種代碼任選):
可用代碼 (1):
可用代碼 (2):
②、通過修改 httpd.conf 配置文件
找到如下類似位置,根據(jù)以下代碼 新增 / 修改,然后重啟 Apache 即可:
二、Nginx 代碼
進(jìn)入到 nginx 安裝目錄下的 conf 目錄,將如下代碼保存為 agent_deny.conf
cd /usr/local/nginx/conf
vim agent_deny.conf
然后,在網(wǎng)站相關(guān)配置中的 location / { 之后插入如下代碼:
如張戈博客的配置:
保存后,執(zhí)行如下命令,平滑重啟 nginx 即可:
三、PHP 代碼
①、PHP 通用版
將如下方法放到貼到網(wǎng)站入口文件 index.php 中的第一個(gè)<?php之后即可 :
②、Wordpress 適用版
將下面的代碼貼到 functions.php 中的最后一個(gè)?>之前即可:
四、測(cè)試效果
如果是服務(wù)器的話,就很簡單,直接通過 curl 命令來檢測(cè);當(dāng)然,如果是虛擬主機(jī)的話,也可以通過百度站長平臺(tái)里的“抓取診斷”來測(cè)試~ 下面以服務(wù)器為例:
模擬 YY 蜘蛛抓取:
模擬 UA 為空的抓取:
模擬百度蜘蛛的抓取:
三次抓取結(jié)果顯示,YY 蜘蛛和 UA 為空的返回是 403 禁止訪問標(biāo)識(shí),而百度蜘蛛則成功返回 200,說明生效!
五、附錄:UA 收集
下面是網(wǎng)絡(luò)上常見的垃圾 UA 列表,僅供參考,同時(shí)也歡迎你來補(bǔ)充。
本文的方法也可用來防止鏡像,具體詳見:
本文粗略的介紹什么是惡意鏡像網(wǎng)站,以及相關(guān)防范鏡像的方法,如有錯(cuò)誤或遺漏,敬請(qǐng)不寧賜教?!?0171022 重要更新,詳情請(qǐng)看方法 4~】
2017-10-22
263
1.14w
總結(jié)
以上是生活随笔為你收集整理的php禁止网页抓取,服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站 - 龙笑天下...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql创建表为什么第二次,mysql
- 下一篇: php多线程模型,PHP进程模型、进程通