– ii –
∼·∼· ∼·∼· ∼·∼· ∼·∼· ∼·∼· ∼·∼· ∼·∼· ∼·∼· ∼·∼· ∼·∼· ∼·∼· ∼· ∼· ∼· ∼· ∼· ∼· ∼· ∼· ∼· ∼· ∼· ∼· ∼· ∼· ∼· ∼· ∼·
3 HTTP 协议 16
3.1 HTTP 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 主要特点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 URL,URI,URN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.1 URI* 统一资源标识符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.2 URL* 统一资源定位符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.3 URN* 统一资源名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.4 URI,URL,URN 的区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 HTTP 协议与 HTTPS 协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.1 HyperText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.2 HTTP 与 HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.5 HTTP 请求过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5.2 请求方法 (Request Method) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.5.3 状态码 (Status Code) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5.4 请求头信息 (Request Headers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.5.5 响应头信息 (Response Headers) . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5.6 响应体 (Response Body) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.6 Cookies 和 session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.6.1 Cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.6.2 session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.6.3 Cookies 和 session 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
第二部分 * 初章 * 网络爬虫初识
4 网络爬虫请求篇 33
4.1 requests 库简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.1 Requests 的安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.2 Requests 基本使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.3 Request 基本请求方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2 使用 Request 发送 GET 请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.1 发送带 headers 的请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.2 发送带参数的请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.3 使用 GET 请求抓取网页 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.4 在 Headers 参数中携带 cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.5 Timeout 设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3 使用 Request 发送 POST 请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3.1 POST 发送 JSON 数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3.2 POST 上传文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.3 使用 POST 请求抓取网页 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.4 Requests 进阶 (1) * Session 会话维持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.4.1 requests.session 的作用以及应用场景 . . . . . . . . . . . . . . . . . . . . . . . 47
4.4.2 requests.session 使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
- 1
- 2
- 3
前往页