分享

Python网络爬虫(一)

 江海博览 2023-11-09 发布于浙江
Python网络爬虫(一)

一、HTTP

1.网络请求过程

(1)通过 URL 查找服务器 IP

(2)三次握手建立 TCP 连接

Python网络爬虫(一)

(3)发送 HTTP 请求

(4)服务器响应请求

(5)浏览器解析 HTML

(6)页面渲染后呈现给用户

2.请求报文

(1)请求行

① 请求方法

1)GET

请求指定页面,并返回页面内容

2)POST

一般用于提交表单或上传数据,数据被包含在请求体中

3)PUT

客户端向服务器发送数据,以取代指定文档内容

4)DELETE

请求服务器删除指定页面

5)CONNECT

HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器

6)HEAD

类似于 GET 请求,只是返回的响应无具体内容,一般用于获取报头

7)OPTIONS

允许客户端查看服务器的性能

8)TRACE

回显服务器收到的请求,一般用于测试或诊断

② URL

用地址标记一个网络资源,强调的是给资源定位

③ HTTP版本

HTTP/主版本号.次版本号

(2)请求头

① Accept

指定客户端能够接收的内容类型

② Accept-Charset

浏览器可以接收的字符编码集

③ Accept-Encoding

指定浏览器可以支持的 Web 服务器返回内容的压缩编码类型

④ Accept-Language

浏览器可接收的语言

⑤ Accept-Ranges

可以请求网页实体的一个或多个子范围字段

⑥ Authorization

HTTP 授权的授权证书

⑦ Cache-Control

指定请求和响应遵循的缓存机制

⑧ Connection

表示是否需要持久连接(HTTP 1.1 默认进行持久连接)

⑨ Cookie

HTTP 请求发送时,会把保存在该请求域名下的所有 Cookie 值一起发送给 Web 服务器

⑩ Content-Length

请求的内容长度

⑪ Content-Type

请求的与实体对应的 MIME 信息

⑫ Date

请求发送的日期和时间

⑬ Expect

请求的特定的服务器行为

⑭ From

发出请求的用户的 E-mail

⑮ Host

指定请求的服务器的域名和端口号

⑯ If-Match

只有请求内容与实体相匹配才有效

⑰ If-Modified-Since

如果请求的部分在指定时间之后被修改,则请求成功;否则,返回 304 代码

⑱ If-None-Match

如果内容未改变,返回 304 代码,参数为服务器先前发送的 Etag,通过与服务器回应的 Etag比较判断是否改变

⑲ If-Range

如果实体未改变,服务器发送客户端丢失的部分;否则,发送整个实体,参数也为 Etag

⑳ If-Unmodified-Since

只有实体在指定时间之后未被修改才请求成功

21 Max-Forwards

限制信息通过代理和网关传送的时间

22 Pragma

用来包含实现特定的指令

23 Proxy-Authorization

连接到代理的授权证书

24 Range

只请求实体的一部分,指定范围

25 Referer

先前网页的地址,当前请求网页紧随其后,即来路

26 TE

客户端愿意接收的传输编码,并通知服务器接收尾加头信息

27 Upgrade

向服务器指定某种传输协议以便服务器进行转换(如果支持)

28 User-Agent

User-Agent 的内容包含发出请求的用户信息

29 Via

通知中间网关或代理服务器地址,通信协议,标识一个请求经过的网关路由节点

30 Warning

关于消息实体的警告信息

(3)空行

请求头的最后会有一个空行,表示请求头结束,接下来是请求正文,这个空行必不可少

(4)请求正文

POST 请求中提交的表单数据

3.响应报文

(1)状态行

① 协议版本

② 状态码

1)1xx

指示信息,表示请求已接收,继续处理

2)2xx

成功,表示请求已被成功接收、理解

3)3xx

重定向,表示要完成请求必须进行更进一步的操作

4)4xx

客户端错误,表示请求有语法错误或请求无法实现

5)5xx

服务器端错误,表示服务器未能实现合法的请求

③ 状态码描述

(2)响应头

① Accept-Ranges

表明服务器是否支持指定范围请求及支持哪种类型的分段请求

② Age

从原始服务器到代理缓存形成的估算时间(以秒计,非负)

③ Allow

对某网络资源的有效的请求行为,不允许则返回 405

④ Cache-Control

告诉所有的缓存机制是否可以缓存及缓存哪种类型

⑤ Content-Encoding

Web服务器支持的返回内容压缩编码类型

⑥ Content-Language

响应正文的语言

⑦ Content-Length

响应正文的长度

⑧ Content-Location

请求资源可替代的备用的另一地址

⑨ Content-MD5

返回资源的 MD5 校验值

⑩ Content-Range

在整个返回体中本部分的字节位置

⑪ Content-Type

返回内容的 MIME 类型

⑫ Date

原始服务器消息发出的时间

⑬ ETag

请求变量的实体标签的当前值

⑭ Expires

响应过期的日期和时间

⑮ Last-Modified

请求资源的最后修改时间

⑯ Location

用来重定向接收方到非请求 URL 的位置以完成请求或标识新的资源

⑰ Pragma

包括实现特定的指令,它可应用到响应链上的任何接收方

⑱ Proxy-Authenticate

它指出认证方案和可应用到代理的该URL 上的参数

(3)空行

响应头的最后会有一个空行,表示响应头结束,接下来是响应正文。这个空行必不可少

(4)响应正文

二、网页的组成

4.HTML

决定网页的结构和内容

5.CSS

决定网页的样式

6.JavaScript

控制网页的行为

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多