shenh10 / trainticket_booker

火车票刷票脚本
55 stars 128 forks source link

'charmap' codec can't decode byte #2

Open lhf552004 opened 6 years ago

lhf552004 commented 6 years ago

hi 你好, 我在运行的时候,报了一个错,如下所示。 好像是编码错误。请问怎么解决呢 谢谢

$ python crawler.py
Traceback (most recent call last):
  File "crawler.py", line 274, in <module>
    ticket_theif = Ticket('./conf/conf.ini')
  File "crawler.py", line 16, in __init__
    self.settings.read(self.config_file)
  File "C:\Python27\lib\site-packages\backports\configparser\__init__.py", line 705, in read
    self._read(fp, filename)
  File "C:\Python27\lib\site-packages\backports\configparser\__init__.py", line 1035, in _read
    for lineno, line in enumerate(fp, start=1):
  File "C:\Python27\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8f in position 27: character maps to <undefined>
shenh10 commented 6 years ago

看样子是config文件读取的问题。你看看所有的分隔符是否都使用英文逗号?

lhf552004 commented 6 years ago

没有逗号哦,我只放了一个车次

shenh10 commented 6 years ago

我重新在新环境部署了这个,没有遇到你的问题。你可以把你的conf.ini文件贴上来看看么?

lhf552004 commented 6 years ago
[GLOBAL]
# 12306 用户账号
username = 
# 12306 用户密码
password =
# 浏览器(需下载对应驱动)
browser=chrome

[TICKET]
# 起始站名,多个起始站名用逗号(英文)隔开
from_station=无锡
# 到达站名,多个到达站名用逗号(英文)隔开
to_station=九江
# 是否查询一段时间的火车票情况(Y/N)
range_query=N
# 需定的火车票时间。如果想查询某个区间日期(range_query= Y),在下方填入查询区间最早日期与最晚日期,用逗号隔开,如:
# date = 2016-02-13, 2016-02-16
# 如果不查询区间(range_query=N),可将日期赋予date,多个日期用逗号隔开
date=2018-01-12
# 如果指定特定列车车次,在下方填入车次名,多个车次逗号隔开
trains=
# 乘车席别,与12306上对应表格列名一致
ticket_type=硬卧
# 是否是学生,是(Y):否(N)
student=N
# 防止12306虚票情况或排队人数过多,设置tolerance次之后放弃该车次;-1 表示无限制
tolerance = 2
# 乘车人,多个乘车人用逗号隔开
people=2
# 是否设置铃声提醒(Y/N)
alarm = N

[STATIONCOOKIE]
# 将车站名与对应cookie填在下方
无锡=%u65E0%u9521%2CWXH
九江=%u4E5D%u6C5F%2CJJG