1. 网络爬虫引发的问题
问题 | 说明 |
---|---|
性能骚扰 | Web服务器默认接受人类访问 受限于编写水平和目的,网络爬虫将会为Web服务器带来巨大的资源开销 |
法律风险 | 服务器上的数据有产权归属 网络爬虫获取数据后牟利将带来法律风险 |
隐私泄露 | 网络爬虫可能具备突破简单访问控制的能力,获得被保护数据从而泄露个人隐私 |
1. 网络爬虫的尺寸
小规模,数据量小 | 中规模,数据规模较大 | 大规模,搜索引擎 |
---|---|---|
爬取速度敏感(>90%) Requests库 | 爬取速度敏感 Scrapy库 | 爬取速度关键 定制开发 |
爬取网页 | 爬取网站 | 爬取全网 |
3. 网络爬虫的限制
- 来源审查:判断User-Agent进行限制
检查来访HTTP协议头的User-Agent域,只响应浏览器或友好爬虫的访问 - 发布公告:Robots协议
告知所有爬虫网站的爬取策略,要求爬虫遵守
4. Robots协议
4.1 什么是Robots协议?
Robots Exclusion Standard , 网络爬虫排除标准
作用:网站告知网络爬虫哪些网页可以抓取,那些不行
形式:在网站根目录下的robots.txt文件
- 案例如下:哔哩哔哩的Robots协议(https://www.bilibili.com/robots.txt)
User-agent: * # 允许所有用户爬取
Disallow: /include/ # 不允许爬取根目录下include目录的所有内容
Disallow: /mylist/ # 不允许爬取根目录下mylist目录的所有内容
Disallow: /member/ # ······
Disallow: /images/ # ······
Disallow: /ass/ # ······
Disallow: /getapi # 不允许爬取根目录下带有所有前面带getapi的文件和文件夹
Disallow: /search # ······
Disallow: /account # ······
Disallow: /badlist.html # 不允许爬取该文件
Disallow: /m/ # ······
4.2 Robots协议的使用
- 网络爬虫:自动或人工识别robots.txt,再进行内容爬取
- 约束性:Robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险
小规模 | 中规模 | 大规模 |
---|---|---|
访问量很小:可以遵守 访问量较大:建议遵守 | 非商业且偶尔:建议遵守 商业利益:必须遵守 | 必须遵守 |