## Python 爬虫入门：下载视频

> 抖音博主说的"爬虫"其实就是用代码下载视频，比手动右键保存快。

---

### 第一步：安装工具

打开终端（CMD / Terminal），粘贴这一行，按回车：

```bash
pip install requests
```

看到 `Successfully installed requests` 就说明装好了。

> `pip` 是 Python 的安装工具，`requests` 是一个库，帮你下载东西。

---

### 第二步：新建一个 Python 文件

打开记事本或 VS Code，新建一个文件，叫 `download.py`。

---

### 第三步：告诉 Python 你要用 requests

在 `download.py` 里写第一行：

```python
import requests
```

> 这行代码的意思是：我要用 requests 这个工具了。

---

### 第四步：准备视频地址

```python
url = "https://example.com/video.mp4"
```

> 把视频直链存到 `url` 这个变量里。`url` 可以随便起名，比如叫 `video_url` 也行。`=` 号表示"把右边的值存到左边的变量里"。

---

### 第五步：下载视频

```python
resp = requests.get(url)
```

> `requests.get(url)` 表示：向这个地址发送请求，把视频数据拿回来。
> 
> 拿到的数据存到 `resp` 这个变量里。`resp` 是 response（响应）的缩写。

---

### 第六步：保存到文件

```python
with open("video.mp4", "wb") as f:
    f.write(resp.content)
```

> 第一行 `open("video.mp4", "wb")`：打开一个叫 video.mp4 的文件，`wb` 表示"以二进制写入模式"。
> 
> `as f`：把打开的文件叫做 f，方便后面用。
> 
> 第二行 `f.write(resp.content)`：把视频数据（resp.content）写到文件（f）里。
> 
> `resp.content` 就是视频的原始数据，和你在浏览器里右键保存的一模一样。

---

### 第七步：加上伪装头（防封）

有些网站发现你不是浏览器，会拒绝你下载。所以加一行伪装：

```python
headers = {"User-Agent": "Mozilla/5.0"}
```

然后改一下下载那行：

```python
resp = requests.get(url, headers=headers)
```

> `headers` 是请求头，告诉服务器"我是浏览器"。`User-Agent` 就是浏览器的名字。不加的话，服务器看到"Python"就知道你是脚本，可能不给你数据。

---

### 第八步：自动提取文件名

```python
filename = url.split("/")[-1]
```

> `url.split("/")`：把 url 按 `/` 切成好几段，比如 `["https:", "", "example.com", "video.mp4"]`
> 
> `[-1]`：取最后一段，也就是 `video.mp4`
> 
> 这样不管视频叫什么名字，都能自动取出来。

---

### 完整代码

把上面的代码拼起来，`download.py` 里最终是这样的：

```python
import requests

url = "https://example.com/video.mp4"
headers = {"User-Agent": "Mozilla/5.0"}

resp = requests.get(url, headers=headers)
filename = url.split("/")[-1]

with open(filename, "wb") as f:
    f.write(resp.content)

print("下载完成：" + filename)
```

---

### 运行

```bash
python download.py
```

当前目录就会出现下载好的视频文件。

---

### 总结

| 代码 | 作用 |
|---|---|
| `import requests` | 导入下载工具 |
| `url = "..."` | 视频地址 |
| `headers = {"User-Agent": "..."}` | 伪装成浏览器 |
| `resp = requests.get(url, headers=headers)` | 下载视频 |
| `resp.content` | 视频的二进制数据 |
| `open("文件名", "wb")` | 创建文件 |
| `f.write(resp.content)` | 写入数据 |

**爬虫的本质**：拿到链接 → 下载 → 保存。就这么简单。