当前位置:编程学习 > C#/ASP.NET >>

关于12306余票查询的问题。

最近在做一个火车票的程序。
需要抓取12306的余票数据,绕过验证码的功能暂时不考虑了但是我在自己页面上手动输入验证码返回结果居然提示该验证码已过期,而把提交页面直接放到浏览器里面打开的话又没有问题。不知道是他那边服务器端做了请求页面的判断还是怎么的,请各位高手指点一下。
提交查询页面是
http://dynamic.12306.cn/TrainQuery/iframeLeftTicketByStation.jsp
参数
arriveStation_ticketLeft 6b666cf605ef10ca
arriveStation_ticketLeft_... true
fdl
ictK 7790
lx 00
name_ckball value_ckball
nday3 13
nday3_new_value false
nmonth3 11
nmonth3_new_value true
rFlag 1
randCode 7wQE
startStation_ticketLeft 957f6c2604d860b2
startStation_ticketLeft_n... true
tFlagDC DC
tFlagK K
tFlagLK LK
tFlagPK PK
tFlagPKE PKE
tFlagT T
tFlagZ Z
trainCode
trainCode_new_value true

randCode参数为验证码的参数
还有个问题是他的站名不知道通过什么方式加密了,不知道有没有人知道他是采用什么方式加密的。 --------------------编程问答-------------------- 就算知道人家的加密方式,楼主还想去解密啊?
还有这些参数都是什么意思啊?说说。。 --------------------编程问答-------------------- 感觉不太可能 除非拿到他的源码文件 否则 如果人家换个加密的key 你还能怎么办? --------------------编程问答-------------------- 加密的感觉他应该是通过客户端JS进行的,因为他那个输入框也可以手动输入的。
arriveStation_ticketLeft 6b666cf605ef10ca 这个参数是终点站
startStation_ticketLeft 957f6c2604d860b2   这个参数是起点站
randCode 7wQE                       这个参数是验证码
其他的参数基本是判断选择了那些列车类型及车次什么的,没什么影响。

我纳闷的是为什么在我自己网站上手动输入的验证码也会显示已经过期,而放到浏览器上直接打开就没问题.. --------------------编程问答-------------------- 刚看了下 他的arriveStation_ticketLeft 相同站点 每次的值都是不一样的 肯定是调用了js或者jsp 不得而知, 有什么好想法? --------------------编程问答-------------------- 他起点终点那里应该是通过js来进行转换的。
郁闷的是在自己网上上输入正确的验证码也会显示验证码过期,有没有谁知道是怎么回事呢? 他限制了请求地址? --------------------编程问答-------------------- 各位大侠出来帮忙看看,查阅了一些资料好像12306对页面的来路地址做了判断,非他自己域名下的地址请求不到数据。不知道用什么方法可以解决? --------------------编程问答-------------------- 哎...帖子都沉了,自己顶一下 --------------------编程问答-------------------- 。。。。本来人家的系统和服务器都不好,,你现在还弄这个去不断提交请求,,让这些需要买票孩纸们情何以堪啊。。到来年系统清闲的时候您再慢慢研究好不? --------------------编程问答-------------------- lz还是结贴吧 --------------------编程问答-------------------- 8# V5,来年火车票降价你再去研究下吧,哈哈 --------------------编程问答-------------------- 问题解决了没? --------------------编程问答-------------------- 也许你需要通过Socket的方式直接和12306的服务器通信,然后分析HTTP协议。有可能是判断UserAgent或者http_referer之类的。你可能需要伪造一些信息提交给服务器。又或者,你没有处理服务器传来的Cookie? --------------------编程问答-------------------- 楼上的可以加我QQ吗  332371435
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,