爬虫的概念
网络爬虫(又称为网络机器人,网页蜘蛛)。如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的猎物数据。
一、爬虫的流程
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、http以及https的概念和区别
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL安全套接字层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
三、请求
请求方法
常见的请求方法有两种:GET和POST
GET和POST方法的区别 :
GET请求中的参数包含在URL里面,数据可以在URL中看到,而POST请求的URL不会包含这些数据,数据通畅都是通过表单形式传输的,会包含在请求体中。
GET请求提交的数据最多只有1024字节,而POST方法没有限制。
一般地,做登录操作时,需要提交用户名和密码,其中包含了敏感信息,如果使用GET方法请求,密码会暴露在URL里面,造成密码泄露,所以这里最好以POST方式发送。上传文件时,由于文件包含数据较多,也选用POST方式。
其他的一些请求方法:
·HEAD:类似于GET请求,不过返回的响应中没有具体的内容
`PUT:从客户端向服务器传送的数据取代指定文档中的内容
`DELETE:请求服务器删除指定的页面
`CONNECT:把服务器当作跳板,让服务器代替客户端访问其他网页
`OPTIONS:允许客户端查看服务器的性能
`TRACE:回显服务器收到的请求,主要用于测试或诊断
请求的网址
统一资源定位符URL,它可以唯一确定我们想请求的资源
请求头
请求头用来说明服务器要使用的附加信息,比较重要的信息有Cookie、Refere、User-Agent等等
·请求报头域,用于指定客户端可以接收哪种类型的信息
·Accept-Language:指定客户端可接受的语言类型
·Accept-Encoding:指定客户端可接收的内容编码
·Content-Type -- 内容类型,又称互联网媒体类型或者MIME类型,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取文件
·Host -- 主机IP和端口号,内容为请求URL的原始服务器或网关的位置
·Connection -- 链接类型
·User-Agent -- 简称UA,浏览器名称及信息 -- 爬虫程序通常添加包含User-Agen的信息来模拟浏览器的请求
·Refere -- 用来标识请求是从哪个页面发过来的,服务器可以拿到这一信息并做响应的处理
·Cookie -- 是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密,由用户客户端计算机暂时或永久保存的信息。
· Authorization -- 表示HTTP协议中需要认证资源的认证信息
·Method -- 请求方式
请求体
请求体中的内容一般是POST请求中的表单数据,在GET请求中,请求体为空
常见的响应状态码
·200 -- 成功
·302 -- 跳转,新的url在响应的Location中给出
·303 -- 浏览器对于POST的响应进行重定向至新的url
·307 -- 浏览器对于GET的响应重定向至新的url
·403 -- 资源不可用;服务器理解客户的请求,但拒绝处理它,因为没有权限
·404 -- 找不到该页面
·500 -- 服务器内部发生错误
·503 -- 服务器由于维护或者负载过重未能应答,还可能是爬虫频繁访问url,使服务器忽视爬虫的请求
·505 -- 服务器不支持请求中所使用的HTTP协议版本
响应头
·Data -- 标识响应产生的时间
·Last-Modified -- 指定资源的最后修改时间
·Content-Encoding -- 指定相应内容的编码
·Sever -- 包含服务器的信息,如名称,版本号等
·Content-Type -- 文档类型,指定返回的数据类型是什么
·Expires -- 指定响应的过期时间,可以使代理服务器或浏览器将加载的内容更新到缓存中,如果再次访问时,就可以直接从缓存中加载,降低服务器负载,缩短加载时间
·Set-cookie -- 对方服务器设置cookie到用户浏览器的缓存
响应体
响应的正文数据都在响应体中,请求网页时,响应体就是网页的HTML代码,请求图片时,响应体就是图片的二进制数据,做爬虫请求网页后,要解析的内容就是响应体
浏览器页面中F12快捷键进去开发者工具,点击网络(Network)选项卡,点击响应(Responses)就可以看到网页的源代码,也就是响应体的内容,它是解析的目标。
四、浏览器运行过程
·浏览器拿到域名对应的ip后,先向地址栏中的url发送请求,并获取响应
·在返回的响应内容中,会带有css、js、图片、音频、视频等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应
·浏览器每获取一个响应就对展示出的姐u共进行加载,js,scc等内容会修改页面的内容,js也可以重新发送请求u,获取响应
·从获取去第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改