c 抓取网页数据(一下禁止搜索引擎爬虫抓取自己的网站的方法(一))
优采云 发布时间: 2021-10-29 01:24c 抓取网页数据(一下禁止搜索引擎爬虫抓取自己的网站的方法(一))
本文简要总结了禁止搜索引擎爬虫通过搜索在线信息抓取网站的方法。
一般来说,大家都希望搜索引擎爬虫尽可能的爬取自己的网站,但有时也需要告诉爬虫不要爬,比如不要爬镜像页面。
搜索引擎自己爬取网站有其优点,但也存在很多常见问题:
1.网络拥塞严重丢包(上下行数据异常,排除DDOS攻击,服务器中毒。下载异常,数据更新)
2.服务器负载过高,CPU快满了(取决于对应的服务配置);
3.服务基本瘫痪,路由瘫痪;
4.查看日志,发现大量异常访问日志
一、先查看日志
以下以ngnix的日志为例
cat logs/www.ready.log |grep spider -c(查看带有爬虫标志的访问次数)
cat logs/www.ready.log |wc(总页面访问量)
cat logs/www.ready.log |grep spider|awk'{print $1}'|sort -n|uniq -c|sort -nr(查看爬虫IP地址来源)
cat logs/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 蜘蛛:啜饮
有道蜘蛛:有道机器人
搜狗蜘蛛:搜狗蜘蛛#07
三、禁止方法
(一),禁止IP
服务器配置可以是:deny from 221.194.136
防火墙配置可以是:-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -s 61.33.22.1/24 -j 拒绝
缺点:一个搜索引擎的爬虫可能部署在多个服务器上(多个IP)。获取某个搜索引擎的爬虫的所有IP是很困难的。
(二),robot.txt
1.robots.txt 文件是什么?
搜索引擎使用程序机器人(也称为蜘蛛)自动访问互联网上的网页并获取网页信息。
您可以在您的网站中创建一个纯文本文件robots.txt,并在该文件中声明您不想被机器人访问的网站部分。这样就可以将网站的部分或全部内容排除在搜索引擎收录之外,或者只能由收录指定搜索引擎。
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/指数。 .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! Slurp China|YoudaoBot|Sosospider|Sogou蜘蛛|搜狗网络蜘蛛|MSNBot|ia_archiver|番茄机器人")
{
返回403;
}
缺点:仅禁止爬虫爬取域级网页。灵活性不足。