爬虫的分类?
通用爬虫
第一步:搜索引擎爬虫抓取网页流程
1.首先选取一部分的种子URL,将这些URL放入待抓取URL队列;
2.取出待抓取URL,解析DNS得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中,并且将这些URL放进已抓取URL队列。
3.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环.
第二步:数据存储
搜索引擎通过爬虫爬取到的网页,将数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是完全一样的。
第三步:预处理
搜索引擎将爬虫抓取回来的页面,进行各种步骤的预处理。
提取文字、中文分词等
第四步:提供检索服务,网站排名
Robots协议:
搜索引擎蜘蛛:一般需要准守Robots协议
Robots协议:(也叫爬虫协议、机器人协议等),全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,
聚焦爬虫:
聚焦爬虫,是"面向特定主题需求"的一种网络爬虫程序,它与通用搜索引擎爬虫的区别在于:聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。
七层协议??
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输
应用层
表示层
会话层
传输层 (TCP、UDP)
网络层
数据链路层
物理层
四层协议、五层协议
HTTP与HTTPS
URI、URL、URN
URL 的组成部分
scheme:协议(例如:http, https, ftp)
host:服务器的IP地址或者域名
port:服务器的端口(如果是走协议默认端口,缺省端口80)
path:访问资源的路径
query-string:参数,发送给http服务器的数据
anchor:锚(跳转到网页的指定锚点位置)
http://127.0.0.1:8000/artical/?name='snclas'&page=1&pagesize=10#category
http://127.0.0.1:8000/artical/?name='snclas'&page=2&pagesize=10
HTTP请求的基本原理(流程)
请求方式get post delete trace put(5个)
请求头:user-agent cookie referer(3个),其他的了解
响应头: (Set-cookie:),其他参数了解
cookies和session,会话保持
响应的状态码
三次握手、四次挥手
什么是爬虫?
是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
就是模拟客户端发起网络请求,接收请求的响应,按照一定的规则,自动的抓取互联网信息的程序。
爬虫的用途?
搜索引擎
咨询新闻网站
购物助手(慧慧购物)
数据分析与研究积累原始数据资源
抢票软件等
什么是七层协议?
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输
七层协议
1.应用层
2.表示层
3.会话层
4.传输层(TCP UDP)
5.网络层
6.数据链路层
7.物理层
四层协议 五层协议
HTTP:
(HyperText Transfer Protocol)中文名叫超文本传输协议:
是用于从网络传送超文本数据到本地浏览器的传送协议
URL
URI(Uniform Resource Identifier):统一资源标识符
URL(Uniform / Universal Resource Locator的缩写):统一资源定位符,是用于完整地描述Internet上网页和其他资源的地址的一种标识方法。
URN(Universal Resource Name):统一资源名称,只命名资源而不指定如何定位资源
URI是URL与URN的父类,URN用的很少,我们一般会提到URI和URL,每一个URL都是一个URI,但是并不是每一个URI都是一个URL.
scheme:协议(例如:http, https, ftp)
host:服务器的IP地址或者域名
port:服务器的端口(如果是走协议默认端口,缺省端口80)
path:访问资源的路径
query-string:参数,发送给http服务器的数据
anchor:锚(跳转到网页的指定锚点位置)
.
常见响应状态码:
100~199:表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程。
2xx:表示服务器成功接收请求并已完成整个处理过程。
200(OK 请求成功)。
3xx:为完成请求,客户需进一步细化请求。例如:请求的资源已经移动一个新地址、
常用
301: 永久重定向
302: 临时重定向(所请求的页面已经临时转移至新的url)
4xx:客户端的请求有错误.
400:错误请求,服务器无法解析请求
401:未授权,没有进行身份验证
403:服务器拒绝访问
404:服务器无法找到被请求的网页
405:请求方式不被允许
408:请求超时
5xx:服务器端出现错误
500:服务器内部错误
501:服务器不具备完成请求的功能
503:服务器不可用
爬虫基本步骤:
分析网站,寻找目标URL
分析目标URL参数(get,post)
get请求参数部分:把?后面的参数写在字典中,
然后使用parse.urlencode(字典参数),得到了URL编码格式的字符串
post请求参数部分:是处理表单数据,将变淡u数据放在字典中,然后使用parse.urlencode(字典参数),得到了URL编码格式的字符串,最后使用encode方法将字符串转为bytes类型。
3.(发起请求):
(1):设置请求头,添加UA(cookie,referer)
(2):实例化一个Request对象,(request.Request)
(3):根据实例化的REQUEST对象,使用request.urlopen方法发起请求
4(处理响应结果):
(1):Aiax请求得到的一般是json数据,使用json模块处理使用json.loads将json字符串,转为python数据类型
(2):对于非结构化数据(数据在html页面中),可以使用
网友评论