反爬虫一:robots协议实践
一:什么是robots?
Robots协议,又称作爬虫协议,机器人协议,全名叫做网络爬虫排除标准(Robots Exclusion Protocol),是用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些不可以抓取,通常为一个robots.txt文本文件,一般放在网站的根目录下。如:https://www.jd.com/robots.txt
二:基本语法
- User-agent:Baiduspider(描述了搜索爬虫的名称,这里为Baiduspider,代表设置的规则是对百度爬虫是有效的,如果有很多条的User-agent:,就会有多个爬虫会受到限制)
- User-agent: *,所有
- Disallow: /baidu(指定了不允许抓取的目录)
- Disallow: / 则表示不允许抓取所有页面
三:配置
- 写一个robots.txt文件,内容如下,示例为禁止所有爬虫
User-agent: * Disallow: /
- 配置nginx
location /robots.txt { alias /path/to/static/robots.txt; }
使用django的话配置如下:根路由下添加
from django.views.generic import TemplateView path(robots.txt, TemplateView.as_view(template_name=robot/robots.txt, content_type=text/plain)),