php禁止网页抓取(一下禁止搜索引擎爬虫抓取网站网站的方法(一)|)
优采云 发布时间: 2022-03-24 05:09php禁止网页抓取(一下禁止搜索引擎爬虫抓取网站网站的方法(一)|)
本文简要总结了防止搜索引擎爬虫通过查找网上信息爬取网站的方法。
一般来说,大家都希望搜索引擎爬虫尽量爬取自己的网站,但是有时候也需要告诉爬虫不要爬,比如不要爬镜像页面等等。
搜索引擎自己爬网站有它的好处,也有很多常见的问题:
1.网络拥塞严重丢包(上下行数据异常,排除DDOS攻击,服务器中毒。异常下载,数据更新)
2.服务器负载过高,CPU快满了(取决于对应的服务配置);
3.服务基本瘫痪,路由也瘫痪;
4.查看日志,发现大量异常访问日志
一、先查看日志
以下以ngnix的日志为例
catlogs/www.ready.log|grepspider -c(用爬虫标志查看访问次数)
catlogs/www.ready.log|wc(总页面访问量)
catlogs/www.ready.log|grepspider|awk'{print$1}'|sort-n|uniq-c|sort-nr(查看爬虫IP地址的来源)
catlogs/www.ready.log|awk'{print$1""substr($4,14,5)}'|sort-n|uniq-c|sort-nr|head-20(见爬虫来源)
二、分析日志
知道爬取了什么爬虫,爬取了什么爬虫。你什么时候爬的?
常用爬虫:
谷歌蜘蛛:googlebot
百度蜘蛛:baiduspider
雅虎蜘蛛:啜饮
Alexa 蜘蛛:ia_archiver
msn 蜘蛛:msnbot
altavista 蜘蛛:滑板车
lycos 蜘蛛:lycos_spider_(t-rex)
alltheweb 蜘蛛:fast-webcrawler/
inktomi 蜘蛛:啜饮
有道机器人:有道机器人
搜狗蜘蛛:Sogospider#07
三、禁止方法
(一), 封IP
服务器配置可以:denyfrom221.194.136
防火墙配置可以:-ARH-Firewall-1-INPUT-mstate–stateNEW-mtcp-ptcp–dport80-s61.33.22.1/24-jREJECT
缺点:一个搜索引擎的爬虫可能部署在多台服务器(多个IP)上,很难获取某个搜索引擎的爬虫的所有IP。
(二), 机器人.txt
1.什么是 robots.txt 文件?
搜索引擎自动访问互联网上的网页,并通过程序机器人(又称蜘蛛)获取网页信息。
你可以在你的网站中创建一个纯文本文件robots.txt,在这个文件中声明你不想被robots访问的网站部分,这样网站 可以将部分或全部内容从搜索引擎收录中排除,或者指定的搜索引擎只能收录指定内容。
2.robots.txt 文件在哪里?
robots.txt 文件应该放在 网站 根目录下。比如robots访问一个网站(例如),它会首先检查该文件是否存在于网站中。如果机器人找到该文件,它将根据文件的内容进行判断。其访问权限的范围。
3.“robots.txt”文件收录一条或多条以空行分隔的记录(以CR、CR/NL或NL结尾),每条记录的格式如下:
“:”。
#可用于该文件中的注释,具体用法与UNIX中的约定相同。该文件中的记录通常以一行或多行 User-agent 开头,后跟几行 Disallow,具体如下:
用户代理:
此项的值用于描述搜索引擎机器人的名称。在“robots.txt”文件中,如果有多个User-agent记录,则表示多个robots会受到该协议的限制。 ,必须至少有一个 User-agent 记录。如果此项的值设置为 *,则协议对任何机器人都有效。在“robots.txt”文件中,只能有一条“User-agent:*”记录。
禁止:
该项的值用来描述一个不想被访问的URL。此 URL 可以是完整路径或部分路径。机器人不会访问任何以 Disallow 开头的 URL。例如“Disallow:/help”不允许搜索引擎访问 /help.html 和 /help/index.html,而“Disallow:/help/”允许机器人访问 /help.html 但不允许 /help/index 。 html。任何 Disallow 记录为空,表示 网站 的所有部分都被允许访问。在“/robots.txt”文件中,必须至少有一条 Disallow 记录。如果“/robots.txt”是一个空文件,则 网站 对所有搜索引擎机器人开放。
缺点:当两个域名指向同一个根目录时,如果想允许爬虫爬取一个域名的部分网页(A/等),但又想禁止爬虫爬取这些网页(A/等)的其他域名/等),此方法无法实现。
(三),服务器配置
以nginx服务器为例,可以在域名配置中添加配置
if($http_user_agent~*"qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo!Slurp|Yahoo!SlurpChina|有道机器人|Sosospider|Sogospider| Sogouwebspider|MSNBot|ia_archiver|TomatoBot")
{
return403;
}
缺点:只能禁止爬虫爬取域级网页。缺乏灵活性。