Python数据分析___爬虫入门—1

Python数据分析___爬虫入门—1

1 爬虫入门:

1.1 浏览器 Vs 服务器(DNS 、Web)

第一步,打开Google Chrome浏览器,以下简称Google浏览器

第二步,输入:http://www.baidu.com ,按回车,发生了以下过程:

​ (1)Google浏览器发送给DNS服务器:http://www.baidu.com (这是URL:统一资源定位符)

​ (2)DNS服务器返回给Google浏览器:14.215.177.39(这是IP地址)

​ (3)Google浏览器,根据IP地址(14.215.177.39),找到对应的Web服务器(如淘宝的服务器):

第三步,Google浏览器 和 Web服务器,两者之间有2次通信过程

​ (1)Google浏览器,向Web服务器请求html文件,Web服务器响应请求,返回html文件

​ (2)Google浏览器,分析html文件中的引用请求(如引用图片),发送请求给Web服务器,获取文件。

​ (3)Google浏览器,把得到的所有文件,根据HTML语法结构,渲染显示出一个页面

说明:URL转化为IP地址的过程,就是域名解析

1.2 啥是URL?

URL:统一资源定位符,全称:Uniform / Universal Resource Locator

比如:http://www.hao123.com:8888/ok/?kobe=24,就是一个URL;

​ Url = 通信协议+域名+端口+资源路径+查询参数

​ http是通信协议 www.hao123.com是域名

​ 8888是端口号 ok是访问资源路 kobe=24是查询参数

1.3 HTTP的基础知识

​ 打开浏览器,输入www.baidu.com,回车,右键检查,选择Network,单击左侧name下的www.baidu.com

1.3.1 基本结构

(1)头信息(Headers):

​ 总体信息:

​ 请求报文: 请求行+请求头+空行+请求体(GET没有,POST有)

​ 响应报文: 响应行+响应头+空行+响应体

(2)响应体(Response):

1.3.2 请求报文示例:GET方法
GET / HTTP/1.1									请求行:请求方式+ 资源路径+HTTP/协议版本
Host: www.itcast.cn  						    请求头:端口号默认是80
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: pgv_pvi=1246921728; 
 												空行

说明:

(1)Connection : keep-alive

​ 重用连接,减少资源消耗,缩短响应时间。

​ 比如当浏览器需要多个文件时(比如一个HTML文件和多个Image文件),不需要每次都去请求建立连接。

(2)Upgrade-Insecure-Requests:

​ 浏览器自动升级请求,从http到https,用于大量包含http资源的http网页直接升级到https而不会报错

​ 否则,对于https页面,页面中又链接了http资源,那么浏览器在解析的时候,就会报错,协议不一样嘛。。

(3)User-Agent (浏览器名称)

​ 标识客户端身份的名称,通常页面会根据不同的客户端身份,自动做出适配,甚至返回不同的响应内容。

(4)Accept (传输文件类型)

​ 指浏览器或其他客户端可以接受的文件类型,服务器可以根据它判断并返回适当的文件格式。

(5)Accept-Charset(字符编码)

​ 可以接受的字符编码。

(6)Cookie:

​ 浏览器用这个属性向服务器发送Cookie。

(7)Content-Type:

​ POST请求里用来表示的内容类型。

1.3.3 请求报文示例:POST方法
POST /xmweb?host=mail.itcast.cn&_t=1542884567319 HTTP/1.1		请求行
Host: mail.itcast.cn											请求体
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
																空行
username=hello&pass=hello										请求体
1.3.4 响应报文示例:
HTTP/1.1 200 OK									响应行:HTTP/协议版本+状态码+状态描述
Server: Tengine									响应头
Connection: keep-alive
Date: Wed, 30 Nov 2016 07:58:21 GMT
Cache-Control: no-cache
Content-Type: text/html;charset=UTF-8
Keep-Alive: timeout=20
Vary: Accept-Encoding
Pragma: no-cache
X-NWS-LOG-UUID: bd27210a-24e5-4740-8f6c-25dbafa9c395
Content-Length: 180945
												空行
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ....			响应体

说明:

(1)Cache-Control:must-revalidate, no-cache, private。

​ 服务端告诉客户端,不希望客户端缓存资源,下次请求时,要重新请求服务器,不能从缓存副本中获取资源。

(2) Connection:keep-alive

服务器告诉客户端,服务器的tcp连接也是一个长连接,客户端可以继续使用这个tcp连接发送http请求。

(3) Content-Encoding:gzip

​ 服务端告诉客户端,发送的资源是采用gzip编码的,客户端看到这个信息后,应该采用gzip对资源进行解码。

(4)Content-Type:text/html;charset=UTF-8

​ 服务器告诉客户端,客户端应该通过utf-8对资源进行解码,然后对资源进行html解析。

(5)Date:Wed, 30 Nov 2016 07:58:21 GMT

​ 服务端发送资源时的服务器时间,GMT是格林尼治所在地的标准时间。

(6)Expires:Sun, 1 Jan 2000 01:00:00 GMT

​ 服务端告诉客户端在这个时间前,可以直接访问缓存副本。

(7) Server:Tengine/1.4.6

​ 服务端告诉客户端,服务器的信息

(8)Transfer-Encoding:chunked

​ 服务端告诉客户端,服务器发送的资源的方式是分块发送的。

​ 一般分块发送的资源都是服务器动态生成的,在发送时还不知道发送资源的大小,所以采用分块发送.

​ 每一块都是独立的,独立的块都能标示自己的长度,最后一块是0长度的,当客户端读到这个0长度的块时,就可以确定资源已经传输完了。

1.3.5 响应状态码

响应状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值

  • 100~199:表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程。
  • 200~299:表示服务器成功接收请求并已完成整个处理过程。常用200(OK 请求成功)。
  • 300~399:为完成请求,客户需进一步细化请求。例如:请求的资源已经移动一个新地址、常用302(所请求的页面已经临时转移至新的url)、307和304(使用缓存资源)。
  • 400~499:客户端的请求有错误,常用404(服务器无法找到被请求的页面)、403(服务器拒绝访问,权限不够)。
  • 500~599:服务器端出现错误,常用500(请求未完成。服务器遇到不可预知的情况)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值