请求的url :http://dynamic.12306.cn/TrainQuery/iframeLeftTicketByStation.jsp
但是这个页面需要用户输入一个验证码,所以首先得先请求一次,得到验证码,然后让用户输入这个验证码,把验证码的参数带上再次请求。请教各位高手,哪位有类似的经验。
我很有經驗,每天都在用這招。不過樓主應該不是問我有沒有經驗而已吧?
因為樓主的問題該說的都沒說 (既沒說要用 script 還是用什麼程式語言寫,也沒說是不是要先用帳號密碼從某個 URL 登入,再來這個 URL 取資料 ),給的 URL 又 500 錯誤,無法連線,所以我只好用 script 的做法,兩次 wget 搞定:
<pre class="c" name="code">wget -nv -q --max-redirect 0 --save-cookie cookie.txt -post-data="user=user&password=password" http://somewhere/login.php
wget --max-redirect 0 --load-cookie cookie.txt -post-data="param=param" http://somewhere/getdata.php
基本上先登入後,網站會先在 cookie 中記錄 session,所以第一次登入記下 cookie (即 session),第二次 query 時,再把 cookie 帶入即可。至於樓主問的驗證碼,因為樓主也沒說這玩意兒是代在 cookie 中還是從網頁顯示出來。若是 cookie 那就直接上面這樣用即可,若是秀在網頁,則從第一次 query 的網頁內容抓出來,帶在第二次的 post-data 裡就行了。
你是大鸟,对不起,我可以说的再详细一些:
我第一次请求的URL是http://dynamic.12306.cn/TrainQuery/leftTicketByStation.jsp,当输入查询条件与验证码之后,再去post请求一次,这次的URL是http://dynamic.12306.cn/TrainQuery/iframeLeftTicketByStation.jsp。
我基本是按照您的解答去偿试的,但是它里面产生验证码的是一个这样的请求
http://dynamic.12306.cn/TrainQuery/passCodeAction.do?rand=rrand,就算我用程序把这个图片弄下来,那如何与对应产生的cookie起来?如果您有详细的解决办法,先在此谢谢了。多谢您的热心回复