python request 编码出错临时解决方法

python 爬取 12306网站编码出错问题解决

仿照网上帖子,写了个爬取12306网站帖子的程序,运行过程中,cookies和header导致运行报错。 报错内容如下:

File "D:\python36\lib\http\client.py", line 1212, in putheader values[i] = one_value.encode('latin-1') UnicodeEncodeError: 'latin-1' codec can't encode character '\uff0c' in position 17: ordinal not in range(256) 问题描述:
出错行:
response = requests.get(url, headers=HEADERS, allow_redirects=True, cookies=cookies, verify=False, timeout=10)
排查原因, 构造Headers和cookies内容报错:
header:
'Accept-Encoding': 'gzip, deflate, br,utf-8',
cookies:

cookies.set('_jc_save_fromStation', from_station_name + ',' +         from_station, domain='kyfw.12306.cn', path='/')   
cookies.set('_jc_save_toStation', to_station_name + ',' + to_station, domain='kyfw.12306.cn', path='/')
cookies.set('_jc_save_fromDate', train_date, domain='kyfw.12306.cn', path='/')
cookies.set('_jc_save_toDate', back_date, domain='kyfw.12306.cn', path='/')
cookies.set('_jc_save_wfdc_flag', 'dc', domain='kyfw.12306.cn', path='/')

尝试将header和cookies中内容转换成utf-8格式,没有成功。
最后一个临时的解决办法:
修改D:\python36\lib\http\client.py 1212行,将Latin-1 改为utf-8,问题解决。
但是问题没有根本解决,还没有找到解决办法。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,463评论 19 139
  • 原文:https://legacy.python.org/dev/peps/pep-3333 PEP:3333标题...
    老周_o_o阅读 7,011评论 0 5
  • 字符集和编码简介 在编程中常常可以见到各种字符集和编码,包括ASCII,MBCS,Unicode等字符集。确切的说...
    兰山小亭阅读 12,827评论 0 13
  • 1. 网页抓取 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中抓取出来。在Python中有很多库可以用来...
    rhlp阅读 4,629评论 0 0
  • 人生不可能总是一帆风顺,有阳光的照耀也有风雨的侵袭。有的人在苦难面前退缩了,苦便成了他的绊脚石,让他沉沦其中不能自...
    滴水藏海_c6df阅读 949评论 0 0