用 golang 写了一个 12306 查询回家时刻的命令行工具。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
liyu4
V2EX    分享创造

用 golang 写了一个 12306 查询回家时刻的命令行工具。

  •  
  •   liyu4 2017-01-19 12:12:46 +08:00 4349 次点击
    这是一个创建于 3191 天前的主题,其中的信息可能已经有所发展或是发生改变。

    #项目是纯 golang 实现的,稍微讲一下步骤

    1. step1:抓取 12306 的包,分析出需要的数据和接口
    2. step2:数据整理
    3. step3:数据展示

    <** 祝大家都早日回家过年 with someone you love **>

    项目地址: https://github.com/JingDa-open-source-community/go-home

    #Querys train schedule use the origin command line tools

    ###output

    第 1 条附言    2017-01-22 14:54:18 +08:00
    第 2 条附言    2017-01-22 14:54:44 +08:00

    更新: 11.gif

    第 3 条附言    2017-01-23 20:45:46 +08:00

    5B0EF953-5C8B-40CC-AAC5-CF53DEE9F65B.png

    第 4 条附言    2017-01-23 20:46:21 +08:00
    新增查询余票功能。还在完善当中。
    第 5 条附言    2017-01-23 20:46:27 +08:00
    新增查询余票功能。还在完善当中。
    24 条回复    2017-01-22 14:52:06 +08:00
    holy_sin
        1
    holy_sin  
       2017-01-19 12:56:38 +08:00
    弄个移动端的应该不错
    coderzys
        2
    coderzys  
       2017-01-19 13:12:16 +08:00 via Android
    可以 很强势
    webjin1
        3
    webjin1  
       2017-01-19 13:56:13 +08:00 via Android
    老乡好
    liyu4
        4
    liyu4  
    OP
       2017-01-19 14:15:06 +08:00
    @webjin1 你好! 你也在上海吗?
    liyu4
        5
    liyu4  
    OP
       2017-01-19 14:16:15 +08:00
    @holy_sin 移动端 不会呢
    liyu4
        6
    liyu4  
    OP
       2017-01-19 14:16:40 +08:00
    @coderzys 谢谢啦!
    chenset
        7
    chenset  
       2017-01-19 14:38:53 +08:00
    菜鸟一只,我刚看完 go 的书, 想学习下楼主的源码.
    go build 书中描述必须针对项目或者指定单文件, 楼主的项目目录是不完整的, 直接编译是失败的.
    不知是否我理解错误.
    liyu4
        8
    liyu4  
    OP
       2017-01-19 14:40:36 +08:00
    @chenset 不会的,项目应该是完整的,不知道你对完整的理解是这么样的?有问题可以加我微信
    chenset
        9
    chenset  
       2017-01-19 14:43:44 +08:00
    @liyu4 源码不是需要放入 src 目录和加入 GOPATH 才能编译吗? 按你的目录结构我使用了两个环境都编译失败了.
    liyu4
        10
    liyu4  
    OP
       2017-01-19 14:52:12 +08:00
    是这样的,所以你要把这个项目放在你的 src 目录下面
    yourpath/src/project
    liyu4
        11
    liyu4  
    OP
       2017-01-19 14:52:27 +08:00
    是这样的,所以你要把这个项目放在你的 src 目录下面
    gopath/src/project
    webjin1
        12
    webjin1  
       2017-01-19 16:29:58 +08:00
    @liyu4 我江西人在广州,
    liyu4
        13
    liyu4  
    OP
       2017-01-19 17:33:08 +08:00
    @webjin1 那边天气好,还有恒大
    heiybb
        14
    heiybb  
       2017-01-19 18:16:53 +08:00
    咦这还是那趟 4775 的车嘛.那天忘了回你了.今天刚打算做个 python 版的=-=
    liyu4
        15
    liyu4  
    OP
       2017-01-19 18:50:26 +08:00 via iPhone
    @heiybb 还是谢谢你,第一版我做好了,献丑了。
    houxg09
        16
    houxg09  
       2017-01-19 20:57:32 +08:00 via Android
    感谢!刚刚做了一个解析 12306 邮件为 iCal 的小玩意儿, 加上这个 api 拿到站时间就齐活儿了~
    liyu4
        17
    liyu4  
    OP
       2017-01-19 20:59:33 +08:00
    @houxg09 是吧,还可以帮助到你,有什么问题我们可以商量!
    aristotll
        18
    aristotll  
       2017-01-19 22:18:43 +08:00
    有个问题 车是可能来回的 你这个是怎么解决的啊
    liyu4
        19
    liyu4  
    OP
       2017-01-19 23:05:03 +08:00
    @aristotll 来回的车是不同的 train_no, 接口不一样了。同一辆车回来的时候会变。比如 k1 回来就变成了 k2.
    CRH
        20
    CRH  
       2017-01-20 00:04:29 +08:00 via iPhone   1
    lz 你这个不严谨啊,同一个车次在不同日期的时刻,经停站都可能是不一样的,调图期间尤。所以 12306 的车次查询是要选日期的。
    你可以查一下 1 月 24 日和 29 日的 K502 试试
    aristotll
        21
    aristotll  
       2017-01-20 07:56:20 +08:00
    @CRH 给的建议是对的 @liyu4 所以我才提出刚才那个问题

    因为我查了一下我过年回家的车 明显时间不对
    liyu4
        22
    liyu4  
    OP
       2017-01-20 08:11:19 +08:00 via iPhone
    @CRH 可以加日期参数,谢谢提醒。
    liyu4
        23
    liyu4  
    OP
       2017-01-20 08:11:55 +08:00 via iPhone
    @aristotll 恩,回头再加一个参数指定,如果不加就默认当天。
    liyu4
        24
    liyu4  
    OP
       2017-01-22 14:52:06 +08:00
    @aristotll 已更新 请制定日期
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5873 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 01:55 PVG 09:55 LAX 18:55 JFK 21:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86