一、什么是爬虫
1、HTTP简介
(1)HTTP=Hyper text Transfer Protocol
(2)URI=Uniform Resource Identifier
(3)URL=Uniform Resource Locator
(4)URI和URL的区别:URI强调的是资源,而URL强调的死资源的位置
2、常用请求类型
(1)OPTIONS:返回服务器针对特定资源所支持的http请求方法
(2)HEAD:向服务器所有与get请求相一致的响应,只不过响应体不会被返回
(3)GET:向特定资源发出请求
(4)PUT:向指定资源位置上传其最新内容
(5)POST向指定资源提交数据进行处理请求
(6)DELETE:请求服务器删除指定URL所标示的资源
(7)PATCH:用来将局部修改用于某一资源
3、HTTP常见的状态码
(1)200/ok:请求成功
(2)201/created:请求已经被实现,且有一个资源已经根据请求被建立,URI跟随Location头信息返回
(3)202/Accepted:服务器已经接收请求,但是尚未被处理
(4)400/Bad Request:请求无法被服务器理解
(5)401/Unauthorized:当前请求需要用户验证
(6)403/Forbidden:服务器已经理解请求,但是拒绝执行
(7)404/Not Founf
4、HTML/XML/Json简介
(1)HTML(Hypertext Markup Language)
不是编程怨言,而是一种标记语言,即HTML使用标记标签来描述网页
标签和元素
DOM文档
<p>xxx</p> //段落 <标签 属性="属性的值"></标签> <a........></a> //链接属性 <a href='www.baidu.com'></a>
(2)XML(extensible Markup Language)
(3)Json(JavaScript Object Notation)
语法类似xml,但是更小、更快、更容易解析。对JavaScript更加友好
二、爬虫框架介绍
1、爬虫的工作流程
1)将种子URL放入队列
2)从队列汇总获取URL,抓取内容
3)解析抓取内容,将需要进一步抓取的URL放入工作队列,存储解析后的内容
2、抓取策略
1)深度优先
2)广度优先
3)PageRank
4)大站优先策略
3、如何去重
1)Hash表
2)bloom过滤器:
4、爬虫的质量标准
1)分布式
2)可伸缩性
3)性能和有效性
4)质量
5)新鲜性
6)更新
7)可扩展行
8)Map/Reuce背后
9)布隆过滤器
5、Robots规范与原则
1)Robots规范:
(1)Robots协议(也称之为爬虫协议,机器人协议等)的全称是网络爬虫排除标准,网站通过Robots协议告诉搜索引擎哪些页面可以爬取,哪些页面不可以爬取。Robots协议的本质是网站和爬虫引擎的沟通方式,用来指导搜索引起更好的爬取网站的内容,而不是作为搜索引擎之间相互限制和不正当竞争的工具