Bootstrap

网络爬虫的行为准则


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协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险
小规模中规模大规模
访问量很小:可以遵守
访问量较大:建议遵守
非商业且偶尔:建议遵守
商业利益:必须遵守
必须遵守
;