爬虫的理论知识概括
什么是爬虫
就是一段自动抓取互联网数据的程序或脚本
网页的三大特性
1:每一个网页都有自己唯一的URL地址(统一资源定位符)
2:网页都是通过HTML(超文本)来展示数据的
3:网页是通过html/htmls(超文本传输协议)来传输html
爬虫的基本步骤
1:寻找目标url,发起请求
2:获取请求的响应结果,分析响应结果
3:从响应结果中提取数据
(a)第一部分,从网页中提取目标数据
(b)如果存在新的url地址,则提取,继续发起请求
爬虫结束
所有的目标url请求全部请求完毕,爬虫结束
数据的用途
1:可以爬取数据,写自己的网站
2:日常数据的基本分析(知乎数据冰山专栏)
爬虫的分类
通用爬虫:是搜索引擎的重要组成部分
作用和目的:
尽可能全的将互联网上的所有网页下载到本地,通过分词,去躁等进行预处理,处理后进行数据的持久化,然后提取检索系统
获取数据的步骤
a:获取一些种子url,放入待爬取列
b:从待爬取队列中取出url发去请求,将获取的响应结果进行处理,之后存入本地,然后将已爬取的url,放入已取的队列
c:从响应结果中获取外链(url),将url放入待爬取队列
搜索引擎如何获取新网站的url
1.向搜索引擎直接提交url地址
2.通过网页的外链
3.跟DNS服务商合作,新网站注册的域对应的网站将会迅速被搜索引擎抓取
robot协议
是一个规范,网站通过robot协议告诉搜索引擎那些页面可以爬取,哪些页面不可以爬取
OSI七层协议的目的
实现不同的系统互联网之间的数据通讯,实现数据的传输。
七层协议:
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
应用层:http/https
传输层:UCP/UDP
TCP:网络传输协议,面向连接的,长连接,传输的是数据流,确保数据的安全性和完整性,大师数据传输的效率低。
UDP:网络传输协议,是非面向链接,短连接,传输的是数据包,传输数据不安全的,可能会造成数据丢失,传输的速度非常高
http(超文本传输协议,端口号:80):实现从网络传输文本数据到本地浏览器的传输协议
https(端口号:443):是http的安全版本,在http的基础上添加了一个SSL(安全套接字层)层,用于wep段的安全传送,在传输层对网络链接进行加密,
1.构建了一个安全的数据传输通道。
2.保证网站的真实性和有效性。
URL介绍:
URI:统一资源标志符
URN:统一资源名称
URL:统一资源定位符
URI是URN和URL的父类
URL的组成部分:
scheme:指的是协议(http、https)
host:指的是服务器的IP或者域名
port:指的是端口号
path:资源路径
query_string:URL地址后面的查询参数
anchor(锚点):可以指定要跳转的位置
get和post的区别:
1.使用场景:get从服务器段端获取数据,post请求向服务器端提交数据
2.安全性:get请求参数只拼接在URL地址上,post请求会将参数放在请求体中(注意:不要以为URL地址后面添加了参数)
3.get请求的URL是有长度限制的,post的请求体中可以添加很多字
Cookie和Session:目的保持会话
http请求是无状态的,每一次请求断开后,下一次请求就认为是一个新的请求,为了维持请求状态就用到了Cookie和Session。
Cookie:保持在客户端。
Session:存储在服务器中
常见的请求状态码:
200:请求成功
3xx:重定向
301:永久重定向
302:临时重定向
4xx:客户端请求错误
400:请求错误,服务器无法解析
401:未授权,没有进行身份验证
403:服务器拒绝访问
404:访问的页面不存在
405:请求方式不允许
408:请求超时
5xx:服务端错误
500:服务端内部错误
501:服务器暂时不具备完成请求的功能
503:服务器不可用