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

2018-07-04  本文已影响0人  步履不停的Suunny

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,问题解决。
但是问题没有根本解决,还没有找到解决办法。

上一篇下一篇

猜你喜欢

热点阅读