|  |      1aristotll      2016-06-11 15:25:15 +08:00 | 
|      2protream OP @aristotll 我是在 Ubuntu 下写的, Windows 下没有测试, 要不你帮忙看看哪有问题, 帮忙改一个啊。新手务怪。 | 
|  |      3Allianzcortex      2016-06-11 15:50:34 +08:00 挺有意思的一个应用。 argparser + termcolor 应该也可以 | 
|  |      4xiahei      2016-06-11 15:52:09 +08:00 挺不错, Mark. | 
|  |      6xsxsxszs      2016-06-11 15:55:24 +08:00 via iPhone 挺有意思的 哈哈 赞一个 | 
|  |      8krivol      2016-06-11 16:04:47 +08:00 via Android 赞一个 | 
|  |      99hills      2016-06-11 16:09:49 +08:00  2 | 
|  |      11aristotll      2016-06-11 16:19:21 +08:00 @protream  类似这样是能取到的 from_station_code = stations.get(arguments['<from>'].decode('gbk').encode('utf8')) | 
|  |      12imn1      2016-06-11 16:20:06 +08:00 | 
|  |      149hills      2016-06-11 16:27:19 +08:00 @aristotll windows 上?,我这里实测可以 C:\Python27>python Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on wi 32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> print sys.stdin.encoding cp936 >>> | 
|  |      15Allianzcortex      2016-06-11 16:28:54 +08:00 所以最终原则是不要在 Windows 下编码,否则 GBK 会把你弄疯的。看了一下源码,其实是不用手动构造 query_url 的。 requests 里有一个参数是 params,直接用一个 dict 传进去就可以了。 | 
|  |      16cashew      2016-06-11 16:34:35 +08:00 Ubuntu 下完美运行。不错。 | 
|  |      1721grams      2016-06-11 16:48:59 +08:00 先 star 一个慢慢看 | 
|  |      18heraldboy      2016-06-11 17:34:11 +08:00 不错, mac 下没问题。 | 
|      19protream OP @Allianzcortex 谢谢指点。不知道为什么, 请求 12306 的参数顺序不对得不到数据,而用 dict 传参会打乱参数顺序 | 
|      20protream OP @Allianzcortex 改用 OrderedDict 了 | 
|  |      21justou      2016-06-11 17:55:46 +08:00 @protream # For Python2 if sys.version < '3': reload(sys) sys.setdefaultencoding('utf-8') 看了下源码, py2 下这样做是很危险的, 会打乱整个程序的运行环境, 尤其是当使用了 sys.setdefaultencoding('utf-8')的代码被用到更大的程序中时, 程序何时崩溃都不奇怪, 一开始处理编码问题时也这样用, 直到程序莫名其妙的退出... http://stackoverflow.com/search?q=sys.setdefaultencoding%28%27utf-8%27%29 | 
|  |      23sudo987      2016-06-11 18:26:26 +08:00 via iPhone iOS 下不能输入中文,怎么解决 | 
|  |      24cc7756789      2016-06-11 18:53:44 +08:00 这个数据是从哪里查的 | 
|  |      26fhefh      2016-06-11 23:20:49 +08:00 nice | 
|  |      27sixer      2016-06-11 23:46:00 +08:00 真不错 | 
|      28Arnie97      2016-06-11 23:46:08 +08:00 via Android 除了编码坑以外, ANSI 转义字符在 Windows 下也不能用。可以考虑 colorama | 
|  |      29araraloren      2016-06-12 09:05:48 +08:00 @cc7756789 12306 实时爬取的,否则有啥意义。。 | 
|  |      30wujunze      2016-06-12 10:20:40 +08:00 最近在学 python    mark 一下 | 
|  |      31Tink PRO 这类界面一般是咋画出来的 | 
|      33warcraft1236      2016-06-12 11:08:17 +08:00 没看具体的,不过当我看到 Linux 下编写, Windows 下没有测试,而且还是个命令行工具的时候,我就知道编码问题要出来了 | 
|      35protream OP @warcraft1236 大神, 求指点 | 
|      36warcraft1236      2016-06-12 11:18:35 +08:00 @protream 我也是初学者。也是头疼编码的问题很多次,才稍微了解一下。简单来说就是, Windows 下的 CMD 用汉字编码是 GBK ,而 Linux 这些是 UTF-8 , GBK 的字数少,所以有些 UTF-8 编码存在的文字, GBK 不存在,而且 GBK 是有损编码,所以这两个编码在转换中不能保持一致,就是 UTF-8 字符串转换成 GBK 然后再转成 UTF-8 之后,和原字符串不是相等的。具体的文章,伯乐在线有过相关文章,具体名字既不清楚了,是讲 MySQL 的 编码问题,讲了常用的编码是怎么回事 | 
|      37protream OP @warcraft1236 谢谢。感觉要是都用 utf-8 编码这个世界就清静了。 | 
|      38cruisehu      2016-06-12 12:16:17 +08:00 Could not find a version that satisfies the requirement ticket (from versions: ) No matching distribution found for ticket | 
|  |      39wjfz      2016-06-12 13:12:02 +08:00 看评论想到一个段子: Pythoner 一半时间都在解决编码问题😂 | 
|  |      43Tinet      2016-06-12 14:03:45 +08:00 不知道这个数据源是哪里来的,我查了重庆到杭州的票,居然没有动车的信息 | 
|      47warcraft1236      2016-06-12 15:32:01 +08:00 @protream 你是准备做 Python 的开发吗? | 
|  |      48exoticknight      2016-06-12 15:37:44 +08:00 argparser 跟这个的区别? 我以前写一个爬广播数据的脚本是用 argparser 写的 | 
|      49protream OP @warcraft1236 是的。准备从 Python 做起。 | 
|      50protream OP @exoticknight 都是写命令行应用的工具,没本质区别, 只是解析参数的方式不一样 | 
|  |      51Geoion      2016-06-12 18:30:38 +08:00 python 2.x 下这个编码问题啊,一颗赛艇 !! 口..口 | 
|  |      53alexapollo      2016-06-12 22:36:20 +08:00 很有趣啊,不过有 JSON 格式的输出吗? | 
|      54protream OP @alexapollo 添加一个功能导出 Json 或 cvs 什么的并不难,不过有什么用? | 
|  |      55alexapollo      2016-06-12 22:47:57 +08:00 @protream 比较好复用,或者做成包来复用也不错 | 
|      56richzhu      2016-06-12 23:27:17 +08:00 via iPhone 不错,留言 mark | 
|      57a414121088      2016-06-13 10:45:18 +08:00 请问写了多长时间 | 
|      59protream OP @a414121088 断断续续加起来一个晚上吧,主体并不难,主要是一些细节优化 | 
|      60protream OP @qooweds 不应该啊,默认支持 50 天内的查询。难道又是编码的问题?你有试试其他数据格式吗?另外新的版本这俩天会发布,到时候会有新的功能, 敬请关注:) | 
|      61qooweds      2016-06-13 15:13:52 +08:00 | 
|  |      62shyling      2016-06-15 22:05:20 +08:00 via iPad 我写了个 ruby 版的 0 0 | 
|  |      64publicAdmin      2016-06-16 14:35:42 +08:00 Mac os 10.11 下 python2.7 下报错。- - | 
|      69pengliang      2016-06-18 16:31:30 +08:00 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128) |