header编码 python_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,问题解决。

但是问题没有根本解决,还没有找到解决办法。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值