Python_爬虫2_爬虫引发的问题
目录
爬虫引发的问题
网络爬虫的尺寸
网络爬虫引发的问题
网络爬虫的限制
Robots协议
Robots协议的遵守方式
Robots的使用
对Robots协议的理解
爬虫引发的问题
网络爬虫的尺寸
- 爬取网页,玩转网页:
小规模,数据量小,爬取速度不敏感。Requests库
- 爬取网站,爬取系列网站:
中规模,数据规模较大,爬取速度敏感。Scrapy库
- 爬取全网:
大规模,搜索引擎,爬取速度关键。定制开发
网络爬虫引发的问题
骚扰问题、法律风险、隐私泄露
网络爬虫的限制
- 来源审查:判断User-Agent进行限制
- 检查来访HTTP协议头的User-Agent域,之相应浏览器或友好爬虫的访问。
- 发布公告:Robots协议
- 告知所有爬虫网站的爬取策略,要求爬虫遵守。
Robots协议
Robots Exclusion Standard 网络爬虫排除标准
作用:网站告知网络爬虫哪些页面可以抓取,哪些不行。
形式:在网站根目录下的robots.txt文件。
案例:京东的Robots协议
http://www.jd.com/robots.txt
# 对于任何的网络爬虫来源,遵守如下协议
User-agent: *
# Disallow 表示不允许访问
Disallow: /?*
Disallow: /pop/*.html
Disallow: /pinpai/*.html?*
# 以下四个网络爬虫不允许爬取任何资源
User-agent: EtaoSpider
Disallow: /
User-agent: HuihuiSpider
Disallow: /
User-agent: GwdangSpider
Disallow: /
User-agent: WochachaSpider
Disallow: /
基本协议语法:
# 注释
* 代表所有
./代表根目录
User-agent: * # 代表的是那些爬虫
Disallow: / # 代表不允许爬虫访问的目录
其他网站的一些Robots协议(但并不是所有网站都有robots协议):
- 百度:http://www.baidu.com/robots.txt
- 新浪新闻:http://news.sina.com.cn/robots.txt
- 腾讯:http://www.qq.com/robots.txt
- 腾讯新闻:http://news.qq.com/robots.txt
- 国家教育部:http://www.meo.edu.cn/robots.txt (注:无robots协议)
Robots协议的遵守方式
Robots的使用
网络爬虫:自动或人工识别robots.txt,再进行内容爬取。
约束性:Robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险。
对Robots协议的理解
- 爬取网页,玩转网页:
访问量很小:可以遵守
访问量较大:建议遵守
- 爬取网站,爬取系列网站:
非商业且偶尔:建议遵守
商业利益:必须遵守
- 爬取全网:
必须遵守