编程乐趣:获取12306的所有车站电报码

关于前文, 查询12306余票中,要用到广州——CZQ,西安——XAY这样的参数,字母简称什么呢?
这里解释一下,这些字母简称是车站的电报码,是字母缩写,来表示唯一的车站。那么这些数据从哪里来呢。
1、网上有下载的,百度搜索:火车站 电报码,会看到有相关的文件。



这应该是网友们自己整理出来的数据。
2、从12306网站获取
不过这个也会随时改变的。
因为这些车站会维护,简称也许会变化。所以从12306上获取比较靠谱一点。
获取步骤为:用IE9打开12306首页——F12——网络——开始捕获——打开12306余票查询页面——输入参数,注意:不要只输入省会站,要输入一些非省会的站——点击查询
——在返回刚才点击开始捕获的地方,点击 停止捕获。
如图:

响应正文


这些就是所有信息。
代码如下
效果:

方法:
public class TrainInfoManager
    {
        public static string DoGetTrainStationNames()
        {
            string stationContent = string.Empty;


            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://dynamic.12306.cn/otsquery/js/common/station_name.js?version=1.57");


                request.Accept = @"application/javascript, */*;q=0.8";


                request.UserAgent = @"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";


                request.Referer = @"http://dynamic.12306.cn/otsquery/query/queryRemanentTicketAction.do?method=init";


                request.Method = "GET";


                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                    {
                        stationContent = reader.ReadToEnd();
                    }
                }
            }
            catch { }


            return stationContent;
        }
    }
代码下载
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值