在电商数据采集领域,某宝(为避免法律风险,本文以“某宝”代称)一直是爬虫工程师的“终极考场”。相比其他电商平台,某宝的反爬体系集多种技术于一体:IP频率限制、User-Agent检测、Cookie合法性校验、行为轨迹分析、参数签名(sign)、请求头混淆、浏览器指纹采集、WebDriver检测、异步JavaScript加密等。其中,sign参数是每一条商品搜索请求的核心,它把请求的时间、页面参数、Token、Cookie等变量通过复杂的加密算法生成签名,服务端实时校验,一旦签名不一致或超时,请求将被拒绝。
本文将带你从零开始,用 Python 3.11 + DrissionPage + Node.js 环境 攻克“手机”关键词搜索,绕过反爬并解析商品数据。全文超过5500字,包含完整可运行的代码、踩坑记录、逆向思路与性能优化建议。
目录
一、传统requests库为何失效?
二、技术选型:为什么是 DrissionPage?
三、环境准备
3.1 安装依赖
3.2 配置Node.js(可选)
四、攻克核心难点:自动化登录与Cookie持久化
4.1 扫码登录代码
4.2 加载Cookie并启动浏览器
五、破解反爬:应对滑块验证与浏览器指纹
六、深度解析XHR请求与sign参数
6.1 尝试直接请求API
6.2 解决思路:拦截浏览器生成的sign
七、实现完整爬虫:搜索“手机”并解析字段
7.1 主要步骤
7.2 完整代码(5000+字核心实现)
7.3 代码详解
八、进阶反爬对策
8.1 滑块验证码处理
8.2 IP代理池
8.3 修改TLS指纹
一、传统requests库为何失效?
很多初学者尝试用以下方式请求:
python
import requests
url = \’https://s.某宝.com/search?q=手机\’
headers = {\’User-Agent\’: \’Mozilla/5.0…\’}
resp = requests.get(url, headers=headers)
print(resp.text)
结果只返回一个空白页面或验证中心页面。原因如下:
服务端渲染 → 客户端渲染:某宝搜索结果页采用Vue/React异步加载,首包HTML中没有商品列表,数据通过XHR请求获得。
参数签名(sign):每个XHR请求的URL中携带s或sign字段,值是由请求参数、时间戳、token等通过MD5/HMAC-SHA256等算法生成。
Cookie反爬:缺少_m_h5_tk、_m_h5_tk_enc等关键Cookie,签名无法通过。
浏览


