Python 网络爬虫入门指南与实战案例演示
前言
网络爬虫(Web Crawler)是一种自动从互联网上抓取数据的程序。即使是简单的复制粘贴操作,本质上也是一种手动的数据抓取形式。然而,对于需要处理大量非结构化数据的场景,手动操作效率极低且容易出错。网络爬虫能够将网页上的非结构化数据转换为结构化的本地文件或数据库记录,极大地提高了数据处理效率。
在使用 Python 进行网络爬虫开发时,开发者需要注意遵守目标网站的 robots.txt 协议及服务条款,确保合法合规地获取数据。
为什么选择 Python?
Python 因其简洁的语法和丰富的第三方库生态,成为网络爬虫开发的首选语言。
- 易于上手:语法接近自然语言,降低学习门槛。
- 强大的库支持:拥有 Requests、BeautifulSoup、Scrapy 等成熟库。
- 数据处理能力:结合 Pandas、NumPy 可轻松完成清洗与分析。
- 跨平台:Windows、Linux、macOS 均可运行。
核心工具库介绍
1. Requests
用于发送 HTTP 请求。它允许我们向服务器发送 GET 或 POST 请求,并接收包含状态码、编码、响应内容的对象。
2. BeautifulSoup (bs4)
用于解析 HTML 和 XML 文档。它提供导航、搜索和修改解析树的方法,是提取网页数据的核心工具。
3. Pandas
用于数据操作和分析。其核心数据结构 DataFrame 非常适合存储表格型数据,并能直接导出为 CSV、Excel 等格式。
4. Tqdm
用于在循环中显示进度条,提升用户体验,特别是在处理大量数据抓取任务时。
爬虫开发流程
- 确定目标 URL:明确需要抓取的具体页面地址。
- 分析网页结构:检查 HTML 源码,定位数据所在的标签(Tag)、类名(Class)或 ID。
- 编写请求代码:构建 HTTP 请求头(Headers),模拟浏览器行为。
- 解析数据:使用 BeautifulSoup 提取所需文本或属性。
- 数据存储:将提取的数据保存为 CSV、JSON 或存入数据库。
实战案例:抓取手机商品信息
本案例演示如何使用 Python 抓取示例网站的商品列表信息,包括产品名称、原价、折扣价等。
环境准备
首先安装必要的依赖库:
pip install requests beautifulsoup4 pandas tqdm
步骤一:发送 HTTP 请求
我们需要构造一个合法的请求头,避免被服务器识别为机器人而拦截。
import requests
url = 'https://www.example.com/products/mobiles'
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36'
}
try:
response = requests.get(url, headers=headers, timeout=10)
response.raise_for_status()
response.encoding = response.apparent_encoding
()
Exception e:
()


