Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 11838|Atbildi: 1

12306 biļešu sagrābšanas programmatūras saskarnes un datu formāti

[Kopēt saiti]
Publicēts 27.09.2017 10:15:39 | | |

Ķeramies tieši pie jautājuma, šeit es galvenokārt vēlos runāt par pašreizējo 12306 funkciju saskarnēm un datu formātiem. Tas galvenokārt ir sadalīts piecos moduļos: pieteikšanās, kontaktu iegūšana, biļešu pārbaude, rezervēšana un nepabeigtu pasūtījumu vaicāšana, tāpat kā dažām citām saskarnēm, kas nav svarīgas, jūs varat tos tieši ignorēt, piemēram, noteikt, vai verifikācijas kods ir pareizs, pieprasīt atlikušo biļešu skaitu utt., Šis raksts ir uzrakstīts, un jūs varat to izpētīt pats, ja jums tas ir nepieciešams.
       1. Pieteikties
             Pieteikšanās galvenokārt ir sesijas iegūšana un saziņas uzturēšana ar serveri. Lai pieteiktos, ir divi galvenie soļi
             Vispirms iegūstiet pieteikšanās verifikācijas kodu
                     Metode: GET
                     Interfeiss: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=login&rand=sjrand&
                     Parametri: kopēt, tas pats
                     Atpakaļ: Bināro attēlu straume
             Otrā pieteikšanās
                    Metode: POST
                    Interfeiss: https://kyfw.12306.cn/otn/login/loginAysnSuggest
                    Parametri: 1. loginUserDTO.user_name Lietotājvārds
                               2. randCode verifikācijas kods
                               3. lietotājsDTO.parole parole
                     Atgriežas: json virkne, kas var noteikt, vai pieteikšanās ir veiksmīga
        2. Kontaktpersonu iegūšana
                    Metode: GET
                    Interfeiss: https://kyfw.12306.cn/otn/passengers/init
                    Parametri: Nav
                    Atgriešanās: html fails, tajā var atrast mainīgo, kas ir json formātā un to var parsēt lietotāja objektā
        3. Biļešu pārbaude
                    Metode: GET
                    Interfeiss: https://kyfw.12306.cn/otn/leftTicket/query?
                    Parametri: leftTicketDTO.train_date: Biļešu pārbaudes datums
                               leftTicketDTO.from_station: Starta stacija (alfabētiskais kods)
                               leftTicketDTO.to_station: Galamērķa stacija (alfabēta kods)
                               purpose_codes:PIEAUGUŠAIS
                    Atgriezties: atgriežas JSON formātā un tieši parsē
         4. Rezervācija
                   Iecelšana ir sadalīta 6 soļos, pa vienam, savstarpēji saistīti
                   Pirmais: Iepriekšēja iesniegšana
                            Metode: POST
                            Interfeiss: https://kyfw.12306.cn/otn/leftTicket/submitOrderRequest
                            Parametrs: secretStr: iegūts no biļešu pārbaudes (viens katram vilcienam un katru reizi atšķirīgs, ir jāanalizē reāllaikā)
                                      train_date: Rezervācijas datums
                                     back_train_date: Atgriešanās datums
                                      tour_flag: līdzstrāva
                                      purpose_codes:PIEAUGUŠAIS
                                      query_from_station_name: Izlidošanas stacija
                                      query_to_station_name: Galamērķa stacija
                                      nedefinēts: tukša virkne
                           Atgriezt. Atgriež JSON formātu, lai noteiktu, vai iesniegšana ir sekmīga
                    Otrkārt: iegūstiet atbilstošos parametrus
                            Metode: POST
                            Interfeiss: https://kyfw.12306.cn/otn/confirmPassenger/initDc
                             Parametri:
                              _json_att: Tukša virkne
                             Atgriešanās: html fails, noderīgs, parsējot globalRepeatSubmitToken pirmajās rindās un iegūstot mainīgā ticketInfoForPassengerForm vērtību no apakšas, ir json formātā, no kura purpose_codes, key_check_isChange, leftTicketStr, train_locatio{filter} n sagatavoties šādām saistībām
                    Treškārt: iegūstiet iesniegšanas verifikācijas kodu
                              Metode: GET
                             Interfeiss: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=passenger&rand=randp&
                             Parametri:
                                      Nav
                             Atgriezties: atgriež attēla bināro straumi, tāpat kā pieteikšanās verifikācijas kodu
                     Ceturtkārt: pārbaudiet, vai iesniegumu var apstiprināt
                             Metode: POST
                              Interfeiss: https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo
                              Parametri:
                                       cancel_flag:2
                                       bed_level_order_num:00000000000000000000000000000000000000
                                       passengerTicketStr: sēdvietas veids, 0, biļetes veids, vārds, identitāte, tālrunis, N (ja ir vairāk nekā viens, atdalīts ar komatu)
                                       oldPassengerStr: vārds, ID tips, ID numurs, lietotāja tips
                                       randCode: Plānotais verifikācijas kods
                                       tour_flag:dc
                                       _json_att: Tukša virkne
                                       REPEAT_SUBMIT_TOKEN: Iegūstiet to no iepriekšējās darbības
                              Atgriešana: json formāts, lai noteiktu, vai to var izdarīt
                    Piektkārt: apstipriniet iesniegumu
                                Metode: POST
                                Interfeiss: https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue
                                Parametri:
   
                                       passengerTicketStr: sēdvietas veids, 0, biļetes veids, vārds, identitāte, tālrunis, N (ja ir vairāk nekā viens, atdalīts ar komatu)
                                       oldPassengerStr: vārds, ID tips, ID numurs, lietotāja tips
                                       randCode: Plānotais verifikācijas kods
                                       purpose_codes: 3. darbība, lai to iegūtu
                                       key_check_isChange: Turpat
                                       leftTicketStr; Turpat
                                       train_locatio{filter}n; Turpat
                                       REPEAT_SUBMIT_TOKEN: Turpat
                                       _json_att: Tukša virkne   
                               Atgriezties: json formātā, nosakiet, vai iesniegšana ir veiksmīga, atgrieziet gaidīšanas laiku un ik pēc noteikta perioda izsauciet 6. darbību, lai atgrieztu apstrādes rezultātu
                     Sestais: aptauja, lai iegūtu iesniegšanas rezultātus
                               Metode: GET
                               Interfeiss: https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?
                               Parametri:
   
                                       nejauši: nejauši skaitļi
                                       tourFlag:dc   
                                       REPEAT_SUBMIT_TOKEN: Ir jāiegūst trešā daļa
                                       _json_att: Tukša virkne   
                               Atgriezties: json formāts, atgriezt gaidīšanas laiku, ja waitTime ir mazāks par 0, iegūt pasūtījuma informāciju orderId, ja tas ir lielāks par 0, turpināt aptauju
          5. Uzziniet par nepabeigtiem pasūtījumiem
                 Metode: POST
                 Interfeiss: https://kyfw.12306.cn/otn/queryOrder/queryMyOrderNoComplete
                 Parametri:
                _json_att: Tukša virkne   
                Atgriešana: JSON formāts, satur pasūtījuma informāciju un tieši parsē

           Runājot par to, 5 funkcijas būtībā tiek ieviestas, bet tagad tas tiek ievietots tikai, lai iemācītos lietot, un netiks ļaunprātīgi uzbrukts, turklāt 12306 vietnes saskarne mainās ļoti bieži, un tagad ievietotais interfeiss rīt var tikt mainīts, tāpēc svarīgi ir iemācīties satvert atbilstošās saskarnes un datus un analizēt no datiem, lai iegūtu atbilstošos parametrus un atbilstošos rezultātus. Šeit es galvenokārt izmantoju firebug, tīkla analīzes rīku, kas nāk kopā ar chrom pārlūkprogrammu, kā arī vijolnieka un wireshark rīkus, un norādījumus par saistīto rīku lietošanu, vienkārši meklējiet to internetā.
            Visbeidzot, sūdzēsimies, ka 12306 tīmekļa vietnē tiek izmantota CDN statiskās kešatmiņas tehnoloģija, kas novedīs pie atbilstošo serveru izvēles atbilstoši slodzes līdzsvarošanai dažādos reģionos, joslas platumam un slodzei, tas ir, visā valstī ir daudz 12306 serveru Katrs lietotājs var piekļūt iespējamiem serveriem ir atšķirīgi, bet tikai statiskās lapas un js, css un attēli utt., Bet katrs serveris tieši uzturēs sesiju koplietotu, tas ir, ja piesakāties vienā no serveriem, citos serveros Iepriekš minētais ir līdzvērtīgs arī izkraušanai. Tāpēc vislabāk ir dinamiski izvēlēties serveri, lai kešatmiņas laiks būtu atjaunināts, stress būtu minimāls un dati būtu reālāk. Manā ieviešanā, ja jūs nevaicājat vienu reizi, jūs vienu reizi mainīsit servera IP. Kas attiecas uz attiecīgo tehnoloģiju, es to atklāšu vēlāk. Bet šī raksta saturs ir pietiekams, lai mācītos. Konkrēto IP adresi varat redzēt http://tool.chinaz.com/dns.




Iepriekšējo:{:1_3:} {:1_3:} Laimīga diena
Nākamo:Kā js kopē objektu?
Publicēts 28.09.2017 09:19:34 |
Vai priekšnieks gatavojas paņemt biļetes?
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com