已解决通过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后再次运行代码就成功返回网页源码了
以上是此问题报错原因的解决方法,欢迎评论区留言讨论是否能解决,如果有用欢迎点赞收藏文章谢谢支持,博主才有动力持续记录遇到的问题!!!
千人全栈VIP答疑群联系博主帮忙解决报错
由于博主时间精力有限,每天私信人数太多,没办法每个粉丝都及时回复,所以优先回复VIP粉丝,可以通过订阅限时9.9付费专栏《100天精通Python从入门到就业》进入千人全栈VIP答疑群,获得优先解答机会(代码指导、远程服务),白嫖80G学习资料大礼包,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html
-
优点:作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会),此专栏文章是专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试!
-
专栏福利:简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等
-
注意:如果希望得到及时回复,和大佬们交流学习,订阅专栏后私信博主进千人VIP答疑群