本项目使用 Jupyter Notebook 演示各种网页爬虫技术和工具。
.
├── notebooks/ # Jupyter Notebook 教程
│ ├── 01_basic_scraping.ipynb # 基础爬虫
│ ├── 02_dynamic_content.ipynb # 动态内容抓取
│ ├── 03_api_scraping.ipynb # API 数据获取
│ ├── 04_data_cleaning.ipynb # 数据清洗
│ ├── 05_advanced_techniques.ipynb # 高级技巧
│ └── 06_law_document_scraper.ipynb # 法律文书爬虫
├── data/ # 存放抓取的数据
├── utils/ # 工具函数
│ └── helpers.py
├── docs/ # 文档
│ └── jupyter-notebook-crawler.md
├── requirements.txt # 依赖列表
└── README.md # 本文件
创建虚拟环境:
python -m venv venv激活虚拟环境:
- Windows:
venv\Scripts\activate - macOS/Linux:
source venv/bin/activate
pip install -r requirements.txtjupyter notebook浏览器会自动打开 http://localhost:8888,然后进入 notebooks/ 目录开始学习。
- HTTP 请求基础
- HTML 解析
- 使用 BeautifulSoup 提取数据
- 数据保存
- Selenium 基础
- 等待页面加载
- 处理 JavaScript 渲染的内容
- 分页和滚动加载
- REST API 调用
- JSON 数据处理
- 参数传递和认证
- 数据可视化
- 处理缺失值
- 数据类型转换
- 文本清洗
- 数据去重和验证
- 并发爬取
- 错误处理和重试
- 反爬虫应对
- 会话管理
- 中国裁判文书网自动化爬取
- 自动登录和认证
- iframe 框架处理
- 高级检索和批量下载
- requests: HTTP 请求
- BeautifulSoup: HTML 解析
- Selenium: 动态内容抓取
- pandas: 数据处理
- matplotlib/seaborn: 数据可视化
- Jupyter: 交互式开发环境
- 遵守网站的 robots.txt 规则
- 合理设置请求频率,避免对目标网站造成压力
- 尊重网站的服务条款
- 不要爬取敏感或受版权保护的内容
建议按照以下顺序学习:
- 先阅读
docs/jupyter-notebook-crawler.md了解基础概念 - 按顺序完成 01-05 的 notebook 教程
- 学习 06 法律文书爬虫的实战案例
- 尝试修改代码,爬取自己感兴趣的网站
- 结合实际项目需求,应用所学技术
如果遇到 ChromeDriver 问题,可以:
pip install webdriver-manager然后在代码中使用:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())保存 CSV 时使用 encoding='utf-8-sig' 避免中文乱码。
欢迎提交 Issue 和 Pull Request!
MIT License