基于 steamdt_crawler.py 项目学习 Python 爬虫实战
以下是 steamdt_crawler.py 中的主要知识点整理,适合有 Python 基础的学习者学习爬虫:
一、爬虫基础与工具选择
1. 动态 vs 静态网页爬取
- Playwright:用于处理 JavaScript 动态渲染的网页(现代 SPA 应用)
- Requests + BeautifulSoup:用于静态 HTML 页面(传统网页)
- 代码中通过
PLAYWRIGHT_AVAILABLE判断并自动降级
2. 环境与编码处理
# Windows 控制台编码修复
if sys.platform == 'win32':
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
- 解决 Windows 下中文乱码问题
- 使用
io.TextIOWrapper重定向标准输出编码
二、Playwright 爬虫框架
1. 基本使用流程
with sync_playwright().start() as playwright:
browser = playwright.chromium.launch(headless=True)
page = browser.new_page()
page.goto(url)
- 无头浏览器:
headless=True - 模拟用户代理:设置
user_agent - 页面等待策略:
wait_for_load_state('networkidle')
2. 元素定位与交互
page.inner_text('body'):获取页面文本page.query_selector_all('tr, div'):CSS 选择器查找元素page.evaluate():执行 JavaScript 代码
三、数据提取与解析
1. 正则表达式(re 模块)
- 提取数字模式:
r'([\d,]+\.\d+)' - 提取百分比:
r'([+-]?\d+\.?\d*%)' - 提取带单位的值:
r'([\d,]+\.\d+[万亿])'
2. 数据清洗与验证
def _extract_numeric_candidates(self, text: ) -> []:
before after:


