Turinys:

„Ajax“svetainės sukūrimas naudojant asinchroninę prisijungimo formą: 6 žingsniai (su nuotraukomis)
„Ajax“svetainės sukūrimas naudojant asinchroninę prisijungimo formą: 6 žingsniai (su nuotraukomis)

Video: „Ajax“svetainės sukūrimas naudojant asinchroninę prisijungimo formą: 6 žingsniai (su nuotraukomis)

Video: „Ajax“svetainės sukūrimas naudojant asinchroninę prisijungimo formą: 6 žingsniai (su nuotraukomis)
Video: Kaip pakeisti tinklapio logotipą 2024, Lapkritis
Anonim
„Ajax“svetainės sukūrimas naudojant asinchroninę prisijungimo formą
„Ajax“svetainės sukūrimas naudojant asinchroninę prisijungimo formą

Problema: „Spidering“įrankiai neleidžia AJAX prisijungimo autentifikavimo.

Ši instrukcija parodys, kaip prisijungti naudojant AJAX formą naudojant „Python“ir modulį, pavadintą „Mechanize“. Vorai yra žiniatinklio automatizavimo programos, kurios tampa vis populiaresnis būdas žmonėms rinkti duomenis internete. Jie šliaužia aplink internetą ir renka brangias medžiagas, kad paskatintų galingiausias žiniatinklio įmones. Kiti šliaužioja ir renka konkrečius duomenų rinkinius, kad pagerintų sprendimų priėmimą, arba nuspręstų, kas šiuo metu yra „,“arba surastų pigiausius kelionės maršrutus. Vorai (žiniatinklio tikrinimo programos, tinkleliai ar ekrano skreperiai) puikiai tinka paversti „HTML goop“tam tikru intelektualių duomenų panašumu, tačiau turime problemų, susijusių su AJAX įgalintais tinklalapiais, kuriuose yra „JavaScript“ir slapukų įgalinti seansai, kurių negalima naršyti įprastu būdu spiderinių įrankių rinkinys. Šioje instrukcijoje mes pateksime į savo narių puslapį pubmatic.com. Šie veiksmai parodys metodą, kurio reikia laikytis, tačiau jūsų puslapis bus kitoks. Pasilinksmink!

1 žingsnis: Surinkite medžiagas

Surinkite medžiagas
Surinkite medžiagas

Turėsite pradėti papildyti savo programavimo išteklius. Jums reikės šių programų. Naudokite jų vadovus, kad padėtumėte juos įdiegti … Įdiekite „Firebug“Tai yra „Firefox“priedas

2 veiksmas: suraskite sesijai sukurti būtinas antraštes

Gerai sukurtas voras pateks į tinklalapį taip, lyg tai būtų naršyklė, kurią valdo žmogus, neslėpdamas užuominų apie tikrąją jo kilmę. Dalis sąveikos tarp naršyklių ir serverių vyksta per GET ir POST užklausas, kurias galite rasti antraštėse (ši informacija retai rodoma naršyklėje, bet yra labai svarbi). Šią informaciją galite peržiūrėti paspausdami „Ctrl I“(„Firefox“), kad atidarytumėte puslapio informacijos langą. Norėdami paslėpti save kaip švelnaus būdo naršyklę, turite identifikuoti save naudodami tuos pačius kredencialus. Jei bandytumėte prisijungti prie „pubmatic“ir naršyklėje išjungtas „JavaScript“, nepasiektumėte labai toli, nes peradresavimai atliekami naudojant „JavaScript“. Taigi, atsižvelgiant į tai, kad dauguma naršyklių „vorai“neturi „JavaScript“vertėjų, turėsime prisijungti naudodami kitą būdą. Pradėkime nuo to, kad antraštės informacija būtų išsiųsta iš naršyklės, kai spustelėsite „Pateikti“. Jei tai būtų įprastas prisijungimas prie naršyklės, užpildykite formą naudodami mechanizmą ir spustelėkite „Pateikti“. Įprastos prisijungimo formos yra įtrauktos į… žymą, o „Mechanize“galėtų tai pateikti ir apklausti kitą puslapį be problemų. Kadangi neturime užpildytos formos žymos, pateikimo funkciją tvarko „JavaScript“. Patikrinkime „pubmatic“funkciją „submittedForm“. Norėdami tai padaryti, pirmiausia atidarykite tinklalapį „Firefox“ir įjunkite „firebug“spustelėdami „firefly“apatiniame dešiniajame kampe. Tada spustelėkite scenarijaus skirtuką, nukopijuokite visą rodomą kodą ir įklijuokite jį į savo mėgstamą teksto redagavimo programinę įrangą. Tada galite ištrinti visą kodą, išskyrus funkciją „Pateikti formą“. Jis prasideda nuo funkcijos „submittedForm (theform) {" ir viskas, kas yra tarp šios funkcijos ir uždaro garbanotąjį skliaustą „}". Analizuodami šią funkciją labai primityviai, pastebime, kad įvyksta tam tikras autentifikavimas, atgaunamas kintamasis, vadinamas xmldoc, kuris analizuojamas kaip xml. Tai yra pagrindinis AJAX bruožas, jis apklausė serverį ir grąžino XML dokumentą, kuriame yra informacijos medis. Mazge session_id yra session_id, jei autentifikavimas buvo sėkmingas, tai galite pasakyti peržiūrėję šį kodo bitą: "if (session_id! = Null) {// prisijungimas sėkmingas". Dabar norime neleisti, kad ši „JavaScript“dalis mus niekur neitų, kad galėtume pamatyti, kas autentifikuojant skelbiama serveryje. Norėdami tai padaryti, pakomentuojame visus langų peradresavimus, kurie atrodo taip: "window.location =…". Jei norite tai pakomentuoti, prieš juos pridėkite dvigubus brūkšnius: „//window.location…“, tai neleidžia paleisti kodo. Galite atsisiųsti žemiau esantį „Javascript“failą, kuriame jau atlikti šie pakeitimai. Nukopijuokite ir įklijuokite šį redaguotą „JavaScript“bitą į konsolės langus dešinėje ir spustelėkite Vykdyti. Tai pakeičia „JavaScript“funkciją, jau esančią puslapyje su nauja versija. Dabar, kai užpildysite savo kredencialus ir spustelėsite „Pateikti“, konsolę turėtų užpildyti POST ir GET antraštės informacija, tačiau niekur nesiruošiate. POST informacija yra informacija, kurią į serverį perkelia AJAX funkcijos. kaip įmanoma, nukopijuokite ir įklijuokite šią informaciją į bloknotą.

3 žingsnis: Paruoškite kodą

Prieš pridėdami naujas antraštes, kurias radome, sukurkime šabloną Mechanizuoti prisijungimo python kodą. Mes tai darome dėl dviejų priežasčių, pirma, todėl turime komponentą, kuris padeda pridėti naujų dalykų, o antra, kad pamatytumėte, kaip paprastai prisijungtumėte prie ne AJAX-y tinklalapio. Atidarykite užrašų knygelę arba lygiavertę programą ir nukopijuokite bei įklijuokite seka. Kai baigsite, išsaugokite jį kaip youfilename.py, kur galite rasti.#!/Usr/bin/python#-*-kodavimas: utf-8-*-#Pradėkite nuo modulio importavimo: iš mechanizuoto importavimo naršyklės#Sukurkite naršyklės egzempliorius per naršyklės () funkcijos skambutį; br = Browser ()#Nustatykite naršyklę, kad ji nepaisytų spiders.txt užklausų#Atlikite tai atsargiai, jei tinklalapiui nepatinka vorai, jie gali būti nusiminę, kad jus suras.set_handle_robots (Netiesa) #Atidarykite puslapį, prie kurio norite prisijungti, tobr.open ("https://pubmatic.com/04_betasignin.jsp") #Kadangi žinau formos pavadinimą, galiu tiesiog pasirinkti formą pagal pavadinimą br.select_form ("login")#Naudodamas formos elementų pavadinimus įvedu formos elementų pavadinimusbr ['email'] = "[email protected]" br ['password'] = "Asquid22"#br.submit () išsiunčia formą ir ištraukia gautą puslapį, jūs sukuriate naują naršyklės egzempliorių.#atsakyme pateikiamas gautas puslapis

4 žingsnis: Siųskite teisingus signalus

Siųskite teisingus signalus
Siųskite teisingus signalus

„Mechanize“turi paprastą funkciją pridėti antraštes prie antraščių POST, tai leis mums pasirodyti toje pačioje naršyklėje, kurią naudojote pirmą kartą pasiekdami puslapį. Atidarykite failą su antraštėmis, kurias radote naudodami „Firebug“ir redaguokite šį teksto failą, kad jis atitiktų. Pakeiskite viską kabutėse tinkamu antraščių sąrašo elementu: USER_AGENT = "Mozilla/5.0 (X11; U; Linux i686; tr-TR; rv: 1.8.1.9) Gecko/20071102 Pardus/2007 Firefox/2.0.0.9" HOST = "pubmatic.com" ACCEPT = "text/xml, application/xml, application/xhtml+xml, text/html; q = 0.9, text/plain; q = 0.8, image/png, */ *; q = 0.5 "ACCEPT_LANGUAGE =" lt-lt, lt; q = 0.5 "ACCEPT_ENCODING =" gzip, deflate "ACCEPT_CHARSET =" ISO-8859-1, utf-8; q = 0.7, *; q = 0.7 "KEEP_ALIVE =" 300 " CONNECTION = "išlaikyti gyvybę" CONTENT_TYPE = "application/x-www-form-urlencoded" REFERER = "https://pubmatic.com/04_betasignin.jsp"CONTENT_LENGTH =" 60 "COOKIE =" utma = 103266945.1970108054.1210101010.12; KADUSERCOOKIE = EA2C3249-E822-456E-847A-1FF0D4085A85; utmz = 103266945.1210113004.1.1.utmccn = (tiesioginis) | utmcsr = (tiesioginis) | utmcmd = (nėra); JSESSIONID = 60F194BE2C2102C2 no-cache "CACHE_CONTROL =" no-cache "Tai sukuria kintamųjų rinkinį, kurį galite naudoti pridėdami prie antraštės šį kodą: br.add_header = [("Host", HOST)] br.add_headers = [("User-agent", USER_AGENT)] br.add_headers = [("Accept", ACCEPT)] br.add_header = [("Accept-Language", ACCEPT_LANGUAGE)] br.add_headers = [("Accept-Encoding", ACCEPT_ENCODING)] br.add_headers = [("Accept-Charset", ACCEPT_CHARSET)] br.add_header = [("Keep-Alive" ", KEEP_ALIVE)] br.add_headers = [(" Ryšys ", CONNECTION)] br.add_header = [(" Turinio tipas ", CONTENT_TYPE)] br.add_header = [(" Referer ", REFERER)] br.add_header = [("Content-Length", CONTENT_LENGTH)] br.add_headers = [("Slapukas", KUKAS)] br.add_headers = [("Pragma", PRAGMA)] br.add_headers = [("Cache-Control", CACHE_CONTROL)] Dabar, kai vadiname puslapio atidarymo funkcija, antraštės taip pat bus siunčiamos į serverį. br.open ("https://pubmatic.com/04_betasignin.jsp")

5 veiksmas: mechanizuoti slapukai

Mechanizuoti slapukai
Mechanizuoti slapukai

Šis žingsnis yra dėl to, kad mechanizavimas automatizuoja slapukų tvarkymą, tačiau svarbu žinoti, kas vyksta:

Kai pateikiama forma, turite teisingas antraštes, tarsi pateikėte naudodami „JavaScript“funkciją. Tada serveris autentifikuoja šią informaciją ir sugeneruoja seanso ID ir išsaugo jį slapuke, jei naudotojo vardas ir slaptažodis yra teisingi. Geros naujienos yra tai, kad „Mechanize“automatiškai valgo ir regurgituoja slapukus, todėl jums nereikia jaudintis dėl slapuko siuntimo ir gavimo. Taigi sukūrę seanso ID, kuris veikia, galite įvesti tik svetainės svetainės skiltį.

6 žingsnis: raktas į širdį

Dabar, kai įsigijome seanso ID ir „Mechanize“išsaugojome jį slapukuose, galime sekti „JavaScript“, kad pamatytume, kur turime eiti. Žvelgdami į „if (session_id! = Null) {// prisijungimas sėkmingas“, pamatysite, kur pasiekti sėkmės. Žvelgiant į lango perkėlimo kodą: "if (adurlbase.search (/pubmatic.com/)! = -1) {window.location =" https://pubmatic.com/05_homeloggedin.jsp " +"? V = " + Matematika atsitiktinai ()*10000; " matome, kad turime eiti į svetainę, esančią https://pubmatic.com/05_homeloggedin.jsp?v=kažkas atsitiktinis skaičius. Taigi tiesiog sukurkime suklastotą atsitiktinį skaičių, kad įvestumėte, ir sukurkite naują naršyklės egzempliorių, kad perskaitytumėte ką tik atidarytą puslapį: response2 = br.open ("https://pubmatic.com/05_homeloggedin.jsp?v=2703") Ir tai turėtų būti tebūnie. Dabar jūsų kodas baigtas, naudojant tinkamas antraštes ir mechanizuojant slapukų tvarkyklę, dabar galime pasiekti pubmatic vidų. Atidarykite terminalą, įkelkite žemiau esantį „python“paketą ir prisijunkite. Norėdami tai padaryti, įveskite python2.5, o tada - į.py failą.

Rekomenduojamas: