Chapter 8:爬虫入门:边走边抓点数据玩
互联网是最大的数据库,而爬虫是你进入它的方式。本章将带你从最基础的 HTTP 请求开始,逐步掌握 requests、BeautifulSoup、正则表达式等核心技能。你会学会如何模拟浏览器、如何解析网页、如何保存数据,并完成一个完整的爬虫小项目。
“互联网是最大的数据库,而爬虫是你的钥匙。”
大家好!前面7篇我们已经把 Python 基础、文件操作、数据处理都过了一遍。今天我们正式进入爬虫入门,边走边玩,真正抓点数据回家。目标很简单:用最少的代码、最少的依赖,抓取豆瓣电影 Top 250,并保存成 Excel 文件。
整个教程严格遵循 Python 3.8 在 Win7 上的兼容性,所有代码都经过 3.8 测试,保证能直接跑。
1. 准备工作(Win7 + Python 3.8 专属提示)
确认 Python 版本 命令行输入:
python –version
必须显示 Python 3.8.x。如果不是,重新安装官方 3.8.10 版本(Win7 推荐 32位或64位视你系统而定)。
安装所需库(一次搞定)
pip install requests beautifulsoup4 openpyxl
- requests:发 HTTP 请求(3.8 完美兼容)
- beautifulsoup4:解析 HTML(推荐搭配 html.parser,Win7 无需额外安装 lxml)
- openpyxl:读写 Excel(纯 Python,Win7 无兼容问题)
Win7 常见坑:如果 pip 报错“无法连接 PyPI”,先执行 python -m pip install –upgrade pip,再重试。
2. requests 基础 + Headers 伪装(核心原理)
爬虫本质就是模拟浏览器向服务器发 HTTP 请求。
底层原理(简单说):
- HTTP 协议(超文本传输协议):浏览器(客户端)发送 GET 请求,服务器返回 HTML。
- requests 底层调用 urllib3,帮我们处理了连接池、编码、重定向等脏活。
- Headers 里的 User-Agent 是服务器判断“你是浏览器还是爬虫”的关键。没有它,豆瓣很容易返回 403 拒绝。
实战代码(伪装成 Chrome):
import requests
from time import sleep
import random
headers = {
\’User-Agent\’: \’Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\’,
\’Referer\’: \’https://movie.douban.com/top250\’ # 豆瓣喜欢检查来源
}
def get_page(url):
try:
r = requests.get(url, headers=headers, timeout=10)
r.encoding = \’utf-8\’ # 防止中文乱码(Win7 必备)
if r.status_code == 200:
return r.text
else:
print(f\”请求失败:{
r.status_code}\”)
return None
except Exception as e:
print(f\”请求异常:{
e}\”





