Board logo

標題: [心得分享] iPhone Reserve Bot 教學 1 - 搜集資料 [打印本頁]

作者: goofyz    時間: 2014-10-15 09:09     標題: iPhone Reserve Bot 教學 1 - 搜集資料

本帖最後由 goofyz 於 2015-9-15 20:01 編輯

原 blog link ,圖片請到原 post 看。

==================================
前言

全城熱炒的 iPhone,每次 Apple 一放貨出來,不用三十秒便已被人訂光,不用自動化程式去遞交基本上沒有機會訂到。其實這類自動化程式不太難寫,因為只是模擬那有 html request 而已。我們來研究一下吧。

要求

開始前,建議你對 html get/post 有基本認識,也要對 programming 有基本底子。另外由於 Reserve 需用到 SMS,我們會用 Android 來寫此程式,所以你最好對 Android App development 有所了解。

基本流程

要寫 bot,當然要了解整個流程,如有幾多個頁面,每頁之間要交換的資料等。
如你已買過一次,應該也知道整個預訂流程,現在整理一下:



Developer Tools

要獲得這些資料,以前可能要自行分析網頁設計,所幸現在的 browser 非常先進,內置 developer tools,可以方便的查看 html form 遞交的資訊,要了解整個流程真是簡單得行。

以下以 Firefox 為示範,Google Chrome 內置的 Developer tools 同樣可以做到,不過我個人喜歡 Firefox 多一點。

用 Firefox 的話,請先安裝 Firebug extension。安裝後,開一新 Private Window,用 Private Window 是排除蘋果網站種下 cookie 影響測試結果。

按 F12 開啟 Firebug,Firebug 有幾個 tab ,我們會用到的主要是 Net,enable 它後,開啟 Persist 設定,這樣所有網絡的 request 和 response 都會記錄下來。

準備好後瀏覽:

https://reserve-hk.apple.com/HK/en_HK/reserve/iPhone

可以看到所有圖片、js、css 的所有 request 都有記錄。讓我們來看看第一頁的情況:

第一頁的 request

接下來是偵探遊戲,要找找那一個 request 是有用的。JPG/PNG、javascript、css 的相關 request 都可以不理,慢慢的看會發現類似 request:

Captcha request

https://signin.apple.com/IDMSWebAuth/imageCaptcha/942#XXXXXXX

看一下 response 便會發現是 captcha 圖片,由此可以知道此便是 captcha 的 request。除非你有所謂的「大法」,不然的話 bot 必須完整模擬整個預訂過程。所以先記住此 URL,到實際寫 bot 時會用到的。

現在輸入 apple ID 密碼和 captcha 再 submit, 在 firebug 便可看到一個 post request,點選即可查看遞交了的 paramters

Post request

點擊一下便可查看遞交的 parameters:

Parameters

其他頁面的做法相同,只要自己試一次預訂便可知道所有相關的資料了。

沒有存貨?

但在最後一版若沒有存貨可以怎試? 可用 html tab 的 mouse (1)

最後一頁

再點選其中一個 iPhone Model 後,在 html tab 可看到有很多隱藏的 li, 先揀其中一個 (2), 再 disable hidden style (3), 便可在網頁揀選一個 iPhone Model 繼續了。

若沒 timeslot 的話,便點擊 timeslot box 後用 edit function 自行加一個 option 進去, value 隨便打的便可以,畢竟我們的目的是測試和記錄所有 parameter,只要可以遞交便行。

完整流程

如果你完整的記錄整個步驟的話, 便會發覺網頁在看不見的地方也做了些 data loading, 來看看完整的步驟:

   

知道需要的資料後,下一步便是實際寫 bot。

====================================
原 blog link ,圖片請到原 post 看。
作者: Newbie    時間: 2014-10-15 15:35

Thanks, 一路都想學呢類野
作者: smith1943    時間: 2014-10-15 15:39

Thanks, Learning !
作者: ss08116g    時間: 2014-10-15 21:21

Learning
作者: PC147    時間: 2014-10-16 01:46

THANKS
ID 已用晒 不過一直都好想了解下
作者: eh    時間: 2014-10-16 07:57

留名學野
作者: D@niel    時間: 2014-10-16 09:45

原理明白,就是進不到第三頁,然後就放棄了。
作者: qtimeqtime    時間: 2014-10-16 15:09

有好野緊唔會比佢沉啦.
期待你的PART 2
作者: zero1992    時間: 2014-10-16 15:26

期待PART 2,多謝分享
作者: carlchanhm    時間: 2014-10-17 00:31

Great !!!
作者: user369    時間: 2014-10-19 11:59

推下先
改precaptcha 係唔係先抽其他地區 IR PAGE session , 係未 expired 之前要入返香港IR 地址 ??
作者: cheung74    時間: 2014-10-19 18:15

只差SMS個位,求教學
作者: kkeennken    時間: 2014-10-19 18:52

十分感謝等待 Part 2
作者: goofyz    時間: 2014-10-19 22:33

推下先
改precaptcha 係唔係先抽其他地區 IR PAGE session , 係未 expired 之前要入返香港IR 地址 ?? ...
user369 發表於 2014-10-19 11:59



    我都想知 ...
作者: goofyz    時間: 2014-10-19 22:34

只差SMS個位,求教學
cheung74 發表於 2014-10-19 18:15



   SMS 要到 part 3 先講到.....part 2 仲係努力緊
作者: gsmjmm    時間: 2014-10-19 23:21

thank for sharing ...

先研究下part1.... 先
作者: 是但    時間: 2014-10-20 21:52

如何 0 秒登入 iReserve ,得唔得?
https://www.youtube.com/watch?v=pwaUlP55TIM
作者: stlive    時間: 2014-10-21 12:39

如何 0 秒登入 iReserve ,得唔得?
是但 發表於 2014-10-20 21:52



   
我相信有高級bot做到,因為每日最貴model都畀人秒殺了
作者: goofyz    時間: 2014-10-21 15:19

久等了的Part 2:

http://www.hkepc.com/forum/viewt ... ;extra=#pid32553583
作者: PC147    時間: 2014-10-21 15:43

久等了的Part 2:
goofyz 發表於 2014-10-21 15:19



    THANKS
作者: goofyz    時間: 2015-9-15 20:00

iPhone6s 又有得玩,推返上黎先。
作者: ftset    時間: 2015-9-16 02:29

回覆 21# goofyz

今年o個login page... a bit different wor
作者: bugb    時間: 2015-9-16 03:47

login容易,dims有冇人識?
作者: scotland    時間: 2015-9-16 13:51

回覆 23# bugb


  c兄已經搞掂個login? 就咁 form submit好似唔得喎!
作者: othree    時間: 2015-9-16 18:13

今年有冇 irc group
作者: bugb    時間: 2015-9-17 05:17

回覆 24# scotland

login冇難度,bot唔會用form的
作者: scotland    時間: 2015-9-17 08:56

回覆 26# bugb


   唔用form submit? C兄可唔可以比多d hints,用什麼submit?
我 compose晒 d account password post json, 再 post forms parameters 上 server,頭一個response 無問題,第二個response唔係200而係302?redirect 唔到去 execution而去返 login page!
作者: 艾迪    時間: 2015-9-17 09:35

你該應講 POST...
關鍵係第一個 POST, 第一個 POST send 齊野, 第二個 POST 就會 redirect 去 sms page.
作者: scotland    時間: 2015-9-17 09:54

回覆 28# 艾迪

多謝C兄提點!但除了account, password, remember me仲有其他野要send?
作者: 是但    時間: 2015-9-17 17:35

我都係唔知第1個post 仲有乜嘢要sent?有無Tips?
作者: ftset    時間: 2015-9-18 04:52

/availability.json... 冇左content...
作者: cheryl12    時間: 2015-9-20 21:16

提示: 作者被禁止或刪除 內容自動屏蔽
作者: scotland    時間: 2015-9-20 22:44

基本上完工了,測試可成功reserve,要再fine tune下program flow同error handling。
作者: goofyz    時間: 2015-9-21 10:10

基本上完工了,測試可成功reserve,要再fine tune下program flow同error handling。
scotland 發表於 20-9-2015 10:44 PM



    最麻煩係 d 位
作者: scotland    時間: 2015-9-21 10:37

回覆 34# goofyz
    C兄 you are right. Test唔到香港嘅flow好麻煩,轉model唔知要唔要relogin,要唔要再sms,唔知仲有無30秒order limit....
作者: ftset    時間: 2015-9-21 14:05

回覆 35# scotland

30 sec.. yes... i used Canada IR...
作者: scotland    時間: 2015-9-21 14:16

回覆 36# ftset
Thank you for your input!
作者: TunnelBear    時間: 2015-10-9 13:13

提示: 作者被禁止或刪除 內容自動屏蔽
作者: AnsonMk    時間: 2015-10-9 16:52

有無人知點解reserve 到CA 定reserve 唔到HK
HK 次次都出createReservationError

求教
作者: goofyz    時間: 2015-10-9 21:17

有無人知點解reserve 到CA 定reserve 唔到HK
HK 次次都出createReservationError

求教 ...
AnsonMk 發表於 9-10-2015 04:52 PM



    太快了
作者: kch123    時間: 2015-10-13 17:53

仲未搵到dims 點黎
有冇師兄可以比下貼士小弟 orz
作者: cosco252    時間: 2015-10-28 09:41

趁IR 就玩完,有野想請教吓!
到底除咗 &selectedGovtIdType=idHongkongCard&govtId=A1234567 之外,
訂 CA 同訂 HK 有乜 settings/parameters 唔同?點解同一段code, 訂CA ok,訂 HK 就create reservation error?啲requests之間加晒delay都一樣死。用always有貨嘅細機16試都唔得。個program加返carrier等info甚至訂 us 都冇問題!
作者: ftset    時間: 2015-10-31 22:04

回覆 42# cosco252


    header?
作者: Jazz    時間: 2015-11-2 13:24

已經跟post學緊





歡迎光臨 電腦領域 HKEPC Hardware (https://www.hkepc.com/forum/) Powered by Discuz! 7.2