python网络爬虫基础
网络爬虫的尺寸
三类爬虫
小规模,数据量小 爬取速度不敏感 | 中规模,数据规模较大,爬取速度敏感 | 大规模,搜索引擎 爬取速度关键 | |
库 | Requests库 90》爬虫 | Scrapy库 | 无,一般大型搜索公司都有一套可以爬取全网的库:如百度,Google |
爬取范围 | 爬取网页 玩转网页 | 爬取网站 爬取系列网站 | 爬取全网,Intener |
网络爬虫的限制
- 来源审查:判断User-Agent进行限制
- 检查来访HTTP协议头的User-Agent域,只响应浏览器或友好爬虫的访问
- 发布公告:Robots(机器人)协议
- 告知所有爬虫网站的爬取策略,要求爬虫遵守
Robots协议
Robots Exclusion Standard 网络爬虫排除标准
作用:网站告知网络爬虫那些页面可以爬取,那些不行。
形式:在网站根目录下的robots.txt文件。
(一般大型网络公司都执行了robots协议,下面看一下京东:https://www.jd.com/robots.txt)
robots协议的两种状态
User-agent 表示访问的爬虫类型 * 表示全部类型
Disallow 表示拒绝访问的目录 / 为根目录
User-agent: * //全部爬虫 Disallow: /?* //不能访问以?开头的全部目录 Disallow: /pop/*.html //不能访问/pop/全部.html文件 Disallow: /pinpai/*.html?* //不能访问/pinpai/全部。html文件带参数的 User-agent: EtaoSpider //以下是拒绝四种爬虫爬取,jd 判断这四种爬虫为有害爬虫,拒绝访问全部文件 Disallow: / User-agent: HuihuiSpider Disallow: / User-agent: GwdangSpider Disallow: / User-agent: WochachaSpider Disallow: /
https://www.baidu.com/robots.txt
http://news.sina.com.cn/robots.txt
http://www.moe.edu.cn/robots.txt (无协议)
Robots协议的使用
网络爬虫:自动或人工识别robots.txt,再进行内容爬取。
约束性:Robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险。
个人建议:
访问量小到和人类一样,如一小时一次:可以不遵守,但是如果是商业使用,就需要遵守
访问量小:可以遵守。
访问量大:建议遵守。
非商业且偶尔:建议遵守。
商业利益:必须遵守。
爬取全网:必须遵守。
网络爬虫,盗亦有道
想学习python爬虫的可以继续学习,,爬虫基础必备库Requests库: