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