本文共 2994 字,大约阅读时间需要 9 分钟。
手段一:
Robots协议:用来告知搜索引擎哪些页面能被抓取,哪些页面不能被抓取;可以屏蔽一些网站中比较大的文件,如:图片,音乐,视频等,节省服务器带宽;可以屏蔽站点的一些死链接。方便搜索引擎抓取网站内容;设置网站地图连接,方便引导蜘蛛爬取页面。
spider在访问一个网站是,会首先检查该网站的根域下是否有一个叫做robots.txt的纯文本文件,这个文件用于指定spider在您网站上抓取范围。一般屏蔽有:隐私资料,表结构robots文件是存在于网站的根目录下,首先会检查http://www.123.com/robots.txt这个文件。robots格式:User-agent: (代表所有搜索引擎)Disallow:(不允许抓取的相对路径)allow:(允许抓取的相对路径或文件)robots.txt生成器:文件用法
例:User-agent: *
Disallow: /
实例分析:淘宝网的 Robots.txt文件:访问www.taobao.com/robots.txt
User-agent: Baiduspider Allow: /article Allow: /oshtml Disallow: /product/ Disallow: / User-Agent: Googlebot Allow: /article Allow: /oshtml Allow: /product Allow: /spu Allow: /dianpu Allow: /oversea Allow: /list Disallow: / User-agent: Bingbot Allow: /article Allow: /oshtml Allow: /product Allow: /spu Allow: /dianpu Allow: /oversea Allow: /list Disallow: / User-Agent: 360Spider Allow: /article Allow: /oshtml Disallow: / User-Agent: Yisouspider Allow: /article Allow: /oshtml Disallow: / User-Agent: Sogouspider Allow: /article Allow: /oshtml Allow: /product Disallow: / User-Agent: Yahoo! Slurp Allow: /product Allow: /spu Allow: /dianpu Allow: /oversea Allow: /list Disallow: / User-Agent: * Disallow: /
做个例子,分析第一条:
User-agent: BaiduspiderAllow: /article Allow: /oshtml Disallow: /product/ Disallow: /
显然淘宝允许百度能访问根目录下的article,oshtml,不允许访问product目录根目录下其他的目录
手段二:
除了设置robots协议之外,还可以在网页代码里面设置。
在网页<head></head>之间加入<meta name="robots" content="noarchive">代码。表示紧致所有搜索引擎抓取网站和显示快照。
如果要针对某一个搜索引擎禁止抓取,在网页<head></head>之间加入<meta name="baidspider" content="noarchive">代码,表示禁止百度抓取,<meta name="googlebot" content="noarchive">表示禁止谷歌抓取,其他的搜索引擎一样原理。
这样,一共有四种组合:
<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW"><META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW"><META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW"><META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">其中<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">可以写成<META NAME="ROBOTS" CONTENT="ALL">;<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">可以写成<META NAME="ROBOTS" CONTENT="NONE">
手段三:
拒绝网站的站内搜索功能是支持输入HTML代码或者UBB代码
例如:
防护方式:
1.屏蔽搜索引擎收录站内搜索页,或者关闭站内搜索功能
2.不屏蔽站内搜索,那需要及时发现站内搜索数据是否异常,再设置敏感词词库过滤一些黑灰产业的关键词,以及站内搜索必须是纯文本形式。
手段四:
通过搜索引擎提供的站长工具,删除网页快照
手段五:
配置nginx的配置文件,增加http_user_agent字段进行禁止网络爬虫,直接返回403
例子:
server { listen 80; server_name _ ; (域名或者默认服务器地址) #添加防止哪些爬虫,下面做例子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 spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") { return 403; }
或者
#新增location字段,并且匹配到了蜘蛛,则返回403location = /robots.txt { if ($http_user_agent !~* "spider|bot|Python-urllib|pycurl"){ return 403; }}
测试工具:
注意:如果还是能够搜索到,是因为某搜索引擎不遵守robots协议约定,那么通过robots来禁止搜索是不够的。
转载于:https://blog.51cto.com/leoheng/2129526