Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9a98042

Browse files
authored
Add TOC 中英文之间加空格 格式化表格
update �爬虫预备知识.md
2 parents 5e80fed + 7e37de5 commit 9a98042

File tree

1 file changed

+88
-68
lines changed

1 file changed

+88
-68
lines changed

‎爬虫预备知识.md‎

Lines changed: 88 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,23 @@
1+
* [爬虫预备知识](#爬虫预备知识)
2+
* [概要](#概要)
3+
* [爬虫定义、分类和流程](#爬虫定义分类和流程)
4+
* [爬虫定义](#爬虫定义)
5+
* [爬虫的分类](#爬虫的分类)
6+
* [爬虫的用途](#爬虫的用途)
7+
* [爬虫的流程](#爬虫的流程)
8+
* [robots 协议](#robots-协议)
9+
* [总结](#总结)
10+
* [HTTP 与 HTTPS](#http-与-https)
11+
* [HTTP 与 HTTPS 的概念](#http-与-https-的概念)
12+
* [HTTP](#http)
13+
* [HTTP 请求流程](#http-请求流程)
14+
* [五层网络模型](#五层网络模型)
15+
* [网络模型对应关系表](#网络模型对应关系表)
16+
* [对应关系](#对应关系)
17+
* [url 地址格式](#url-地址格式)
18+
* [HTTP 请求](#http-请求)
19+
* [HTTP 响应](#http-响应)
20+
* [HTTPS](#https)
121
# 爬虫预备知识
222
> 爬虫课程中所需要的相关知识储备
323
@@ -11,7 +31,7 @@
1131
#### 爬虫定义
1232
> 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。
1333
14-
> 原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做
34+
> 原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做
1535
1636
#### 爬虫的分类
1737
1. ``通用爬虫``:通常指搜索引擎的爬虫
@@ -32,16 +52,16 @@
3252
3. 如果提取url,则继续发送请求获取响应
3353
4. 如果提取数据,则将数据进行保存
3454

35-
#### robots协议
36-
> Robots协议:网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,但它仅仅是道德层面上的约束 例如:[淘宝的robots协议](https://www.taobao.com/robots.txt)
55+
#### robots 协议
56+
> Robots 协议:网站通过 Robots 协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,但它仅仅是道德层面上的约束 例如:[淘宝的 robots 协议](https://www.taobao.com/robots.txt)
3757
3858
### 总结
3959
- 爬虫概念:模拟浏览器发送网络请求,接收请求响应。只要是浏览器(客户端)能做的事情,爬虫都能够做。
4060
- 爬虫的分类:聚焦爬虫、通用爬虫
4161
- 爬虫的流程:
42-
1. 向起始url发送请求,并获取响应
62+
1. 向起始 url 发送请求,并获取响应
4363
2. 对响应进行提取
44-
3. 如果提取url,则继续发送请求获取响应
64+
3. 如果提取 url,则继续发送请求获取响应
4565
4. 如果提取数据,则将数据进行保存
4666

4767

@@ -54,14 +74,14 @@
5474
> 协议:协议规定了通信双方必须遵守的数据传输格式,这样通信双方按照约定的格式才能准确的通信。
5575
> 无状态:无状态是指两次谅解通信之间是没有任何联系的,每次都是一个新的连接,服务端不会记录前后的请求信息。
5676
57-
##### HTTP请求流程
77+
##### HTTP 请求流程
5878

5979
![](./images/http.png)
6080

6181
1. 浏览器通过域名解析服务器(DNS)获取IP地址
62-
2. 浏览器先向IP发起请求,并获取相应
63-
3. 在返回的响应内容(html)中,会带有css、js、图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应
64-
4. 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面的内容,js也可以重新发送请求,获取响应
82+
2. 浏览器先向 IP 发起请求,并获取相应
83+
3. 在返回的响应内容(html)中,会带有 css、js、图片等 url 地址,以及 ajax 代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应
84+
4. 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css 等内容会修改页面的内容,js也可以重新发送请求,获取响应
6585
5. 从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改————这个过程叫做浏览器的渲染
6686

6787
##### 五层网络模型
@@ -80,16 +100,16 @@
80100
4. 数据链路 -------> 数据链路层
81101
5. 物理介质 -------> 物理层
82102

83-
##### url地址格式
103+
##### url 地址格式
84104

85105
![](./images/http的url规则.jpg)
86106
> 格式说明: scheme://host[:port]/path/.../[?query-string][#anchor]
87107
88108
1. scheme:协议(例如:http, https, ftp)
89-
2. host:服务器的IP地址或者域名
109+
2. host:服务器的 IP 地址或者域名
90110
3. port:服务器的端口(如果是走协议默认端口,缺省端口80)
91111
4. path:访问资源的路径
92-
5. query-string:参数,发送给http服务器的数据
112+
5. query-string:参数,发送给 http 服务器的数据
93113
6. anchor:锚(跳转到网页的指定锚点位置)
94114

95115
##### HTTP 请求
@@ -100,36 +120,36 @@
100120
![](./images/请求协议案例.jpg)
101121

102122
- **请求方式**
103-
> 根据HTTP标准,HTTP请求可以使用多种请求方法
104-
>
105-
> HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法
106-
>
107-
> HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
108-
109-
请求方式 | 描述
110-
------------- | -------------
111-
GET| 请求指定的页面信息,并返回实体主体。
112-
HEAD | 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
113-
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
114-
PUT | 从客户端向服务器传送的数据取代指定的文档的内容
115-
DELETE | 请求服务器删除指定的页面。
116-
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
117-
OPTIONS | 允许客户端查看服务器的性能。
118-
TRACE | 回显服务器收到的请求,主要用于测试或诊断。
123+
> 根据 HTTP 标准,HTTP 请求可以使用多种请求方法
124+
>
125+
> HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法
126+
>
127+
> HTTP1.1 新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
128+
129+
|请求方式 | 描述|
130+
|---------|------------------------------------------------------------------------------------------------------------------------------------------|
131+
|GET| 请求指定的页面信息,并返回实体主体。|
132+
|HEAD | 类似于 get 请求,只不过返回的响应中没有具体的内容,用于获取报头|
133+
|POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。|
134+
|PUT | 从客户端向服务器传送的数据取代指定的文档的内容|
135+
|DELETE | 请求服务器删除指定的页面。|
136+
|CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
137+
|OPTIONS | 允许客户端查看服务器的性能。|
138+
|TRACE | 回显服务器收到的请求,主要用于测试或诊断。|
119139

120140
- **常见请求头**
121141

122-
请求头 | 作用
123-
------------- | -------------
124-
**Cookie** | Cookie
125-
**User-Agent** | 浏览器名称
126-
**Referer** | 页面跳转处
127-
Host | 主机和端口号
128-
Connection | 链接类型
129-
Upgrade-Insecure-Requests | 升级为 HTTPS 请求
130-
Accept | 传输文件类型
131-
Accept-Encoding | 文件编解码格式
132-
x-requested-with : XMLHttpRequest | ajax 请求
142+
|请求头 | 作用|
143+
|-----------------------------------|-------------------|
144+
|**Cookie**|Cookie|
145+
|**User-Agent** | 浏览器名称|
146+
|**Referer** | 页面跳转处|
147+
|Host | 主机和端口号|
148+
|Connection | 链接类型|
149+
|Upgrade-Insecure-Requests | 升级为 HTTPS 请求|
150+
|Accept | 传输文件类型|
151+
|Accept-Encoding|文件编解码格式|
152+
|x-requested-with : XMLHttpRequest | ajax 请求|
133153

134154
[点击查看更多](https://github.com/CriseLYJ/Python-crawler-tutorial-starts-from-zero/blob/master/HTTP%E8%AF%B7%E6%B1%82%E5%88%97%E8%A1%A8.md)
135155

@@ -143,51 +163,51 @@ x-requested-with : XMLHttpRequest | ajax 请求
143163
- **响应头**
144164

145165

146-
响应头 | 作用
147-
------------- | -------------
148-
**Location** | 这个头配合302状态码使用,告诉用户端找谁。
149-
**Set-Cookie** | 设置和页面关联的Cookie
150-
Content-Type| 服务器通过这个头,回送数据的类型
151-
Server | 服务器通过这个头,告诉浏览器服务器的类型
152-
Content-Length | 服务器通过这个头,告诉浏览器回送数据的长度
153-
Connection | 服务器通过这个头,响应完是保持链接还是关闭链接
166+
|响应头 | 作用|
167+
|----------------|------------------------------------------------|
168+
|**Location**| 这个头配合 302 状态码使用,告诉用户端找谁。|
169+
|**Set-Cookie** | 设置和页面关联的 Cookie |
170+
|Content-Type| 服务器通过这个头,回送数据的类型|
171+
|Server | 服务器通过这个头,告诉浏览器服务器的类型|
172+
|Content-Length | 服务器通过这个头,告诉浏览器回送数据的长度|
173+
|Connection | 服务器通过这个头,响应完是保持链接还是关闭链接|
154174

155175
- **HTTP 状态码**
156176

157-
>当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。
158-
>
159-
> HTTP状态码的英文为HTTP Status Code。
160-
>
161-
> HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP 状态码共分为5种类型
162-
163-
分类 | 分类描述
164-
------------- | -------------
165-
1** | 信息,服务器收到请求,需要请求者继续执行操作
166-
2** | 成功,操作被成功接收并处理
167-
3** | 重定向,需要进一步的操作以完成请求
168-
4** | 客户端错误,请求包含语法错误或无法完成请求
169-
5** | 服务器错误,服务器在处理请求的过程中发生了错误
170-
171-
- 常见的HTTP状态码:
177+
>当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。
178+
>
179+
> HTTP 状态码的英文为 HTTP Status Code。
180+
>
181+
> HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP 状态码共分为 5 种类型
182+
183+
|分类 | 分类描述|
184+
|------|------------------------------------------------|
185+
|1** |信息,服务器收到请求,需要请求者继续执行操作|
186+
|2** | 成功,操作被成功接收并处理|
187+
|3**|重定向,需要进一步的操作以完成请求|
188+
|4** | 客户端错误,请求包含语法错误或无法完成请求|
189+
|5** | 服务器错误,服务器在处理请求的过程中发生了错误|
190+
191+
- 常见的 HTTP 状态码:
172192
- 200 - 请求成功
173-
- 301 - 资源(网页等)被永久转移到其它URL
193+
- 301 - 资源(网页等)被永久转移到其它 URL
174194
- 404 - 请求的资源(网页等)不存在
175195
- 500 - 内部服务器错误
176196

177197
[点击查看更多](https://github.com/CriseLYJ/Python-crawler-tutorial-starts-from-zero/blob/master/HTTP%E5%93%8D%E5%BA%94%E5%88%97%E8%A1%A8.md)
178198

179199
#### HTTPS
180-
- HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协议
200+
- HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协议
181201
- 默认端口号:443
182202

183203
- **HTTPS 作用**
184-
> 在 传输过程中 对数据进行加密,防止中间路由器、交换机等中间的路由设备对数据进行篡改。
204+
> 在传输过程中对数据进行加密,防止中间路由器、交换机等中间的路由设备对数据进行篡改。
185205
186206
- **HTTP 与 HTTPS 优缺点**
187207
> HTTP 因为不需要对数据进行加密所以性能更高,但是安全性差。
188-
>
189-
>
208+
>
209+
>
190210
>HTTPS 虽然安全性高,但是因为浏览器和服务器端需要对数据进行加解密,所以占用服务器资源。
191211
192212
- **当前形式**
193-
> 注意:目前HTTPS是未来主流,微信小程序,iOS客户端,android客户端 的接口提供都需要 HTTPS 接口支持。
213+
> 注意:目前 HTTPS 是未来主流,微信小程序,iOS 客户端,android 客户端的接口提供都需要 HTTPS 接口支持。

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /