爬虫入门指南:从基础到实战案例解析
一、爬虫相关介绍
1.1 什么是爬虫?
爬虫(Web Crawler)是通过编写程序模拟浏览器行为,自动抓取互联网数据的核心技术。其核心原理分为两个关键点:
- 模拟浏览器行为:现代浏览器本质是天然爬虫工具,爬虫程序通过HTTP协议模拟浏览器请求
- 数据抓取策略:
• 全量抓取:获取页面全部内容
• 精准抓取:提取指定数据片段
常见问题:当爬虫无法获取目标数据时,90%的情况是浏览器行为模拟不足导致的请求特征异常。
1.2 爬虫应用分类
| 分类 | 特点 | 应用场景 |
|---|---|---|
| 通用爬虫 | 抓取全站页面源码 | 搜索引擎索引 |
| 聚焦爬虫 | 提取页面指定数据 | 垂直领域数据采集 |
1.3 反爬与反反爬攻防
graph LR
A[网站反爬机制] --> B(请求频率限制)
A --> C(验证码校验)
A --> D(UA检测)
A --> E(IP封禁)
F[爬虫应对策略] --> G(代理IP池)
F --> H(验证码识别)
F --> I(请求头伪装)
F --> J(请求速率控制)
二、Requests库实战指南
2.1 环境配置
pip install requests
2.2 核心工作流
import requests
# 1.目标URL定义
target_url = "https://www.example.com"
# 2.发送HTTP请求
response = requests.get(url=target_url)
# 3.获取响应内容
html_content = response.text # 文本形式
binary_data = response.content # 二进制形式
# 4.数据持久化
with open("output.html", "w", encoding="utf-8") as f:
f.write(html_content)
2.3 常见问题处理
中文乱码解决方案
response.encoding = 'utf-8' # 手动指定编码
# 或根据响应头自动检测
response.encoding = response.apparent_encoding
UA伪装实战
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36..."
}
response = requests.get(url, headers=headers)
三、经典案例剖析
3.1 动态数据加载处理
智慧职教专业数据抓取流程:
- 打开Chrome开发者工具(F12)
- 定位XHR类型请求
- 分析请求参数规律
- 模拟分页请求
import requests
import time
for page in range(1, 6):
url = f"https://www.icve.com.cn/portal/course/getNewCourseInfo?page={page}"
headers = {
"Referer": "https://www.icve.com.cn/portal_new/course/course.html",
"User-Agent": "Mozilla/5.0..."
}
response = requests.post(url, headers=headers)
data = response.json()
# 解析JSON数据...
time.sleep(1) # 请求间隔
3.2 图片批量下载
# 方式1:使用requests
response = requests.get(img_url)
with open("image.jpg", "wb") as f:
f.write(response.content)
# 方式2:使用urllib
from urllib.request import urlretrieve
urlretrieve(img_url, "image.jpg")
四、项目实战作业
作业1:肯德基门店数据采集
# 核心请求参数示例
data = {
"cname": "",
"pid": "",
"keyword": "上海",
"pageIndex": 1,
"pageSize": 10
}
作业2:下厨房菜谱抓取
# 搜索请求示例
params = {
"keyword": "宫保鸡丁",
"cat": 1001
}
五、爬虫伦理与规范
- 遵守
robots.txt协议 - 设置合理请求间隔(建议≥1秒)
- 禁止抓取敏感数据
- 尊重网站版权声明
提示:本文所有案例仅供学习参考,实际应用中请遵守目标网站的服务条款。
通过系统学习本文内容,读者可掌握基础的网络爬虫开发能力。爬虫技术需要持续实践,建议从公开API接口开始练习,逐步过渡到复杂网站的数据采集。记得在实战中多使用开发者工具分析网络请求,这是破解动态加载数据的关键。

浙公网安备 33010602011771号