常见反爬与JS处理
当你开始抓真实网站时,很快就会发现:
真正难的往往不是“发请求”,而是“网站不想让你轻易抓到”。
HTTP 请求头检测
很多网站会检查这些信息:
User-AgentRefererCookie
如果这些信息不合理,网站可能直接拒绝你。
JavaScript 加密与混淆
有些请求参数不是直接写在页面里的,而是浏览器执行 JavaScript 后动态算出来的。
这时你就要学会:
- 看前端脚本
- 找参数生成位置
- 判断是否需要还原逻辑
浏览器开发者工具
后面你会非常频繁地用到这些面板:
- 元素面板
- 控制台
- 源代码
- 网络面板
- 调用栈
断点调试
断点可以帮助你看清楚某个参数到底是怎么生成的。
这比盲猜代码逻辑有效得多。
pyexecjs 执行 JS
有些场景下,你会把前端的一段 JS 放到 Python 里执行,以便生成参数。
Selenium 模拟浏览器
如果网站非常依赖浏览器环境,或者页面是强动态渲染,Selenium 就会变得很重要。
验证码处理
真实项目里常见的验证码包括:
- 字符验证码
- 滑动验证码
- 点触验证码
常见加密解密算法
至少要先知道这两个大类:
- 对称加密
- 非对称加密
代理池和 Docker
当爬虫更工程化时,你会接触:
- 代理池
- Docker 容器环境
- 更稳定的部署方式