爬虫的基本概念
1. 爬虫的定义
简单来说,网络爬虫(Web Crawler)就是模拟浏览器行为,自动访问网页并抓取数据的程序。对于初学者而言,理解它不需要太复杂的理论,核心逻辑就是:发送请求 -> 获取响应 -> 解析数据。
2. 爬虫的主要工作流程
一个完整的爬虫流程通常包含以下几个步骤:
- 确定目标:明确你要抓取的网站和具体字段(比如标题、价格、图片链接)。
- 发送请求:使用 HTTP 库向服务器发起 GET 或 POST 请求。
- 获取响应:接收服务器返回的 HTML、JSON 或 XML 内容。
- 数据解析:从原始文本中提取出你需要的信息。
- 数据存储:将提取的数据保存到本地文件或数据库中。
3. 常用 Python 工具
Python 之所以成为爬虫首选,是因为生态极其丰富。最核心的两个库是 requests 和 BeautifulSoup。
- requests:处理网络请求,简单高效。
- BeautifulSoup (bs4):解析 HTML/XML 文档,定位标签。
环境准备
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
写第一个简单的爬虫
准备好了吗?我们直接上手。这次的目标很简单:抓取一个公开页面的标题和内容。
代码实现
新建一个文件 crawler.py,写入以下代码:
import requests
from bs4 import BeautifulSoup
# 定义目标 URL
url = "https://example.com"
# 设置请求头,伪装成浏览器
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}
try:
# 发送请求
response = requests.get(url, headers=headers, timeout=10)
# 检查状态码
if response.status_code == 200:
response.encoding = response.apparent_encoding
html = response.text
soup = BeautifulSoup(html, )
title = soup.find().get_text(strip=)
()
paragraphs = soup.find_all()
p paragraphs[:]:
(p.get_text(strip=))
:
()
Exception e:
()


