已解决通过firefox火狐浏览器F12 浏览器开发者工具复制账号cookie,使用requests库发送请求,抛出requestsUnicodeEncodeError: ‘latin-1’ codec can’t encode character ‘\u2026’ in position 512: ordinal not in range(256)异常,的正确解决方法亲测有效
粉丝群里面的一个小伙伴遇到问题跑来私信我,想用requests模块携带Cookie发送请求获取网页源码,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),部分报错代码如下所示:
headers = {'User-Agent': random.choice(ua_list),
'authority': 'p4psearch.1688.com',
'method': 'GET',
'path': path,
'scheme': 'https',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'max-age=0',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'none',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1',
'Cookie':'aliwwLastRefresh=1676529836395; firstRefresh=1676529836422; lastRefresh=1676529836422; cna=jxhyHNxII38CAbaM9U4MAD9W; isg=BD8_yxLAYJtNH2SB66xjYLWIzRPJJJPG9d8fXdEMhe414F5i2fKSF_36IlC7o2s-; l=fBxVi047T78bfF1JBOfanurza77OYIOYYuPzaNbMi9fP_RWBRf_1W6-IRcx6Cn1VF6oeR3o5gGc9BeYBqBdKnxvO9r9ZmxDmndLHR35..; tfstk=c2e5BOGVvUY7gm02O4sVYpYJ2YhdZgtsA_guVaf8ugoeEvqfiVpZ5Dn0teHEvm1..; _m_h5_tk=3c27b3de90ab190c4416ab4b5ad74cfb_1676537003870; _m_h5_tk_enc=1f106d40e5658b2bf573d92bcdb308da; cookie2=193a880a315d821d430c1afe0e16f61…pgRsEvAdBnnx6gXA%3D%3D; sg=680; csg=04fc6bba; unb=2210567950888; __cn_logon_id__=tb7562608416; ali_apache_track=c_mid=b2b-2210567950888132ff|c_lid=tb7562608416|c_ms=1; ali_apache_tracktmp=c_w_signed=Y; _nk_=tb7562608416; last_mid=b2b-2210567950888132ff; is_identity=buyer; _is_show_loginId_change_block_=b2b-2210567950888132ff_false; _show_force_unbind_div_=b2b-2210567950888132ff_false; _show_sys_unbind_div_=b2b-2210567950888132ff_false; _show_user_unbind_div_=b2b-2210567950888132ff_false; __rn_alert__=false'
}
r = requests.get(url, headers=headers)
print(r)
报错信息翻译如下所示:
requests编码解码错误:“latin-1”编解码器无法编码位置512中的字符“\u2026”:序号不在范围内(256)
报错原因:
cookie的原因问题报错。检查cookie发现其中含有…,cookie信息并不完整。在开发者工具中,如果header中的值比较长会自动折叠内容,用…省略显示。
对于firefox浏览器,点击请求头右侧的原始按钮,即可显示完整的原始请求头,然后再复制信息即可:
修改cookie后再次运行代码就成功返回网页源码了
以上是此问题报错原因的解决方法,欢迎评论区留言讨论是否能解决,博主看到会给出回复和你所遇到的报错问题解决方法!!!
本文已收录于:《告别Bug专栏》,欢迎免费订阅!!!
本专栏用于记录学习和工作中遇到的各种疑难编程Bug问题,以及粉丝群里小伙伴提出的各种问题,文章形式:报错代码 + 报错翻译 + 报错原因 + 解决方法,包括程序安装、运行程序过程中遇到的等等问题,博主心愿:让天下没有难学的编程,从此告别Bug!!!
订阅专栏 + 关注博主后,扫描下方二维码进全栈学习互助交流群可以帮忙解决问题,并且可以免费领取300本IT电子书籍、学习资料、简历模板、面试题库,和小伙伴们交流学习、抱团取暖,共同进步!!!