Python 入门实战:从零编写你的第一个网络爬虫
一、爬虫的基本概念
1. 爬虫的定义
网络爬虫(Web Crawler)本质上是一个自动访问网页的程序。它按照一定的规则,抓取互联网上的信息并存储下来。对于初学者来说,可以把爬虫想象成一个不知疲倦的'搬运工',它负责从网页上把文字、图片等数据取回来。
2. 爬虫的主要工作流程
一个基础的爬虫通常包含以下步骤:
- 发送请求:向目标服务器发起 HTTP 请求,模拟浏览器行为。
- 获取响应:接收服务器返回的 HTML、JSON 或文本数据。
- 解析内容:从返回的数据中提取出我们需要的信息。
- 保存数据:将提取到的数据存储到本地文件或数据库中。
3. 常用 Python 工具
在 Python 生态中,有几个库是爬虫开发的标配:
requests:用于发送 HTTP 请求,简单高效。BeautifulSoup4(bs4):用于解析 HTML 和 XML 文档,查找特定标签。lxml:高性能的解析器,常作为 bs4 的后端支持。
二、环境准备
1. 安装 Python
确保你的电脑上已经安装了 Python 3.x 版本。可以在终端输入 python --version 检查。如果未安装,建议前往官网下载最新稳定版。
2. 安装必要库
打开命令行工具(Terminal 或 CMD),使用 pip 安装开发所需的依赖包:
pip install requests beautifulsoup4
如果遇到网络问题导致安装失败,可以尝试添加国内镜像源:
pip install requests beautifulsoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple
三、写第一个简单的爬虫
准备好了吗?接下来我们动手写一段代码,抓取一个简单的网页标题。
1. 基础代码示例
这里我们以抓取某个公开页面的标题为例。注意,实际项目中请遵守网站的 robots.txt 协议,不要对服务器造成过大压力。
import requests
from bs4 import BeautifulSoup
# 定义目标 URL
url = 'https://www.example.com'
# 设置请求头,模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}
try:
# 发送 GET 请求
response = requests.get(url, headers=headers, timeout=10)
# 检查请求是否成功
if response.status_code == 200:
# 设置编码,防止中文乱码
response.encoding = response.apparent_encoding
html = response.text
# 创建 BeautifulSoup 对象进行解析
soup = BeautifulSoup(html, 'html.parser')
# 查找 title 标签
page_title = soup.title.string
print(f"页面标题:{page_title}")
else:
print(f"请求失败,状态码:{response.status_code}")
except Exception as e:
print(f"发生错误:{e}")
2. 代码关键点解析
- Headers:很多网站会拦截没有 User-Agent 的请求,加上这个头部能显著降低被屏蔽的概率。
- Encoding:
response.encoding有时识别不准,使用apparent_encoding让库自动猜测编码更稳妥。 - Exception Handling:网络环境不稳定,务必用
try-except包裹核心逻辑,避免程序直接崩溃。
四、注意事项
爬虫开发不仅仅是技术实现,还涉及法律与道德边界。请务必注意以下几点:
- 合法合规:不爬取个人隐私数据,不违反目标网站的服务条款。
- 控制频率:设置合理的请求间隔,避免对目标服务器造成 DDoS 攻击般的压力。
- 尊重版权:抓取的内容仅用于学习或个人用途,商用需获得授权。
掌握这些基础后,你可以尝试扩展功能,比如处理分页、登录验证或使用 Selenium 应对动态渲染页面。祝你在数据采集的道路上探索愉快!


