美文网首页
python request 编码出错临时解决方法

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

作者: 步履不停的Suunny | 来源:发表于2018-07-04 20:32 被阅读0次

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

    相关文章

      网友评论

          本文标题:python request 编码出错临时解决方法

          本文链接:https://www.haomeiwen.com/subject/yulduftx.html