Python爬取速卖通时出现编码错误的原因及解决咨询
问题原因及解决办法
原因
你遇到的UnicodeEncodeError是因为HTTP协议规定请求头必须用latin-1编码传输,但你的请求头里(bx-ua和Cookie字段)包含了省略号字符(\u2026),这个字符不在latin-1的编码范围内,导致编码失败。
这个省略号是你复制请求头时,内容过长被工具/编辑器自动截断生成的,并非接口要求的原始完整内容。
解决办法
补全被截断的请求头内容
重新从浏览器开发者工具中复制完整的bx-ua和Cookie字段,确保复制过程中内容没有被截断为省略号(…),要直接获取原始的完整字符串。清理请求头中的非latin-1字符
速卖通的bx-ua是加密验证字段,必须保证内容完整且无修改。如果请求头中存在其他非latin-1字符,要移除或转换为符合HTTP标准的编码形式。补充POST请求体参数
速卖通的评论接口通常需要传递请求体参数(比如分页、语言配置等),你当前的post请求未携带任何body,即使解决编码问题也可能返回错误。可以从开发者工具复制请求的Payload,通过json参数传入:payload = { "page": 1, "pageSize": 10, # 其他从开发者工具获取的必填参数 } response = s.post(prod_link, json=payload)
内容的提问来源于stack exchange,提问作者kuchuluk
相关产品推荐
相关产品推荐

