Obsah:

Spider web Ajax pomocou asynchrónneho prihlasovacieho formulára: 6 krokov (s obrázkami)
Spider web Ajax pomocou asynchrónneho prihlasovacieho formulára: 6 krokov (s obrázkami)

Video: Spider web Ajax pomocou asynchrónneho prihlasovacieho formulára: 6 krokov (s obrázkami)

Video: Spider web Ajax pomocou asynchrónneho prihlasovacieho formulára: 6 krokov (s obrázkami)
Video: Google Speed Update, AJAX Crawl, Local Search, & More 2024, December
Anonim
Spider web Ajax pomocou asynchrónneho prihlasovacieho formulára
Spider web Ajax pomocou asynchrónneho prihlasovacieho formulára

Problém: Nástroje na pavúky nepovoľujú autentifikáciu prihlásenia AJAX.

Tento návod vám ukáže, ako sa prihlásiť pomocou formulára AJAX pomocou Pythonu a modulu s názvom Mechanize. Pavúky sú programy na automatizáciu webu, ktoré sú pre ľudí stále obľúbenejším spôsobom zhromažďovania údajov online. Plazia sa po webe a zbierajú cenné materiály, aby povzbudili tie najsilnejšie webové spoločnosti v okolí. Iní sa plazia a zbierajú konkrétne súbory údajov, aby zlepšili rozhodovanie alebo vyvodili, čo je aktuálne „in“, alebo našli najlacnejšie cesty. Pavúky (webové prehľadávače, webové roboty alebo škrabky na obrazovku) sú skvelé na premenu stránky HTML na niečo ako inteligentné údaje, ale máme problém s webovými stránkami s podporou AJAX, ktoré majú relácie s povoleným jazykom JavaScript a súbormi cookie a ktoré nie je možné navigovať v bežných normách. sada nástrojov na spidering. V tomto návode sa dostaneme na vlastnú členskú stránku pubmatic.com. Tieto kroky vám ukážu spôsob, ako postupovať, ale vaša stránka bude iná. Bavte sa!

Krok 1: Zhromaždite materiály

Zbierajte materiály
Zbierajte materiály

Budete musieť začať dopĺňať svoje programovacie zdroje. Budete potrebovať nasledujúce programy. Použite ich sprievodcov, ktorí vám pomôžu nainštalovať tieto … Inštalovať FirebugJe to doplnok pre FirefoxInštalácia Pythonu Choďte na: python.org Choďte na: python.orgNainštalujte modul mechanizácie Získať mechanizáciu Získať mechanizáciu Ďalšie užitočné nástroje na vytváranie pavúkov: BeautifulSoup

Krok 2: Nájdite hlavičky potrebné na vytvorenie relácie

Dobre vytvorený pavúk bude pristupovať na webovú stránku, ako keby to bol prehliadač ovládaný ľudskou bytosťou, pričom by tajil informácie o skutočnom pôvode. Časť interakcie medzi prehliadačmi a servermi sa deje prostredníctvom požiadaviek GET a POST, ktoré nájdete v hlavičkách (tieto informácie sa v prehliadači zobrazujú len zriedka, ale sú veľmi dôležité). Niektoré z týchto informácií si môžete prezrieť stlačením klávesu Ctrl I (vo Firefoxe), čím sa otvorí okno Informácie o stránke. Na to, aby ste sa zamaskovali ako mierne vychovaný prehliadač, sa musíte identifikovať pomocou rovnakých prihlasovacích údajov. Ak by ste sa pokúsili prihlásiť do pubmaticu s deaktivovaným javascriptom vo svojom prehliadači, nedostali by ste sa ďaleko, pretože presmerovania sa vykonávajú prostredníctvom JavaScriptu. Vzhľadom na to, že väčšina prehliadačov pavúkov nemá tlmočníky javascriptu, budeme sa musieť k prihláseniu dostať alternatívnou cestou. Začnime tým, že sa informácie o hlavičke odošlú z prehliadača po kliknutí na tlačidlo Odoslať. Ak by to bolo bežné prihlásenie do prehliadača, pomocou mechanizmu vyplňte formulár a kliknite na tlačidlo odoslať. Bežné prihlasovacie formuláre sú zapuzdrené do … značky a Mechanize by to mohla bez problémov odoslať a vyžiadať si ďalšiu stránku. Keďže nemáme vyplnenú značku formulára, o funkciu odoslania sa stará JavaScript. Pozrime sa na funkciu submitForm spoločnosti pubmatic. Ak to chcete urobiť, najskôr otvorte webovú stránku vo Firefoxe a zapnite Firebug kliknutím na svetlušku v pravom dolnom rohu. Potom kliknite na kartu skriptu, skopírujte všetok zobrazený kód a vložte ho do obľúbeného softvéru na úpravu textu. Potom môžete odstrániť všetok kód okrem funkcie submitForm. Začína sa to funkciou „submitForm (theform) {“a všetkým medzi tým a funkciami, ktoré uzatvárajú zloženú zátvorku „}“. Pri veľmi primitívnej analýze tejto funkcie si všimneme, že dôjde k určitej autentifikácii, ktorá vráti späť premennú s názvom xmldoc, ktorá sa analyzuje ako xml. Toto je kľúčová vlastnosť systému AJAX, ktorý vykonal prieskum servera a priniesol späť nejaký dokument XML, ktorý obsahuje strom informácií. Uzol session_id obsahuje session_id, ak bola autentifikácia úspešná, môžete to zistiť tak, že sa pozriete na tento kúsok kódu: „if (session_id! = Null) {// úspešné prihlásenie“. Teraz chceme zabrániť tomu, aby nás tento kúsok javascriptu dostal kamkoľvek, aby sme videli, čo sa počas autentifikácie odosiela na server. Za týmto účelom komentujeme všetky presmerovania okien, ktoré vyzerajú takto: "window.location = …". Ak to chcete komentovať, pridajte pred ne dvojité lomky takto: „//window.location…“to zabráni spusteniu kódu. Môžete si stiahnuť nižšie uvedený súbor Javascript, v ktorom sú tieto úpravy už vykonané. Skopírujte a prilepte tento upravený javascript do okna konzoly na pravej strane a kliknite na položku Spustiť. Toto prepíše funkciu JavaScript už na stránke s našou novou verziou. Teraz, keď vyplníte svoje prihlasovacie údaje a kliknete na tlačidlo Odoslať, mali by ste vidieť, že informácie o hlavičke POST a GET vyplnia konzolu, ale nikam nepôjdete. Informácie POST sú informácie, ktoré sú na server natočené funkciami AJAX a chcete byť tak veľa. Takto to je možné, skopírujte a prilepte tieto informácie do poznámkového bloku.

Krok 3: Pripravte si kód

Predtým, ako pridáme nové hlavičky, ktoré sme našli, vytvoríme šablónu prihlasovacieho kódu Pythonu pre mechanizáciu. Robíme to z dvoch dôvodov, za prvé, pretože máme komponent, ktorý funguje na pridávanie nových položiek, za druhé, aby ste videli, ako by ste sa normálne prihlásili na webovú stránku, ktorá nie je AJAX-y. Otvorte poznámkový blok alebo ekvivalent a skopírujte a prilepte nasledujúce. Keď skončíte, uložte ho ako youfilename.py niekde, kde ho nájdete.#!/Usr/bin/python#-*-kódovanie: utf-8-*-#Začnite importom svojho modulu: z mechanizovaného importu Prehliadač#Vytvorte si inštancia prehliadača prostredníctvom volania funkcie Browser (); br = Browser ()#Nastavte prehliadač tak, aby ignoroval požiadavky spiders.txt#Urobte to opatrne, ak webová stránka nemá rada pavúky, môžu byť naštvaní, aby vás tam našli..set_handle_robots (False) #Otvorte stránku, na ktorú sa chcete prihlásiť tobr.open ("https://pubmatic.com/04_betasignin.jsp") #Keďže poznám názov formulára, môžem jednoducho vybrať formulár podľa názvubr.select_form ("prihlásenie")#Pomocou názvov prvkov formulára zadám názvy prvkov elementsbr ['email'] = "[email protected]" br ['heslo'] = "Asquid22"#br.submit () odošle formulár a vytiahne výslednú stránku, vytvoríte novú inštanciu prehliadača#odpoveď nižšie obsahuje výsledný pageresponse = br.submit ()#Tým sa vytlačí telo prijatej webovej stránky#print response.read ()

Krok 4: Pošlite správne signály

Pošlite správne signály
Pošlite správne signály

Mechanize má jednoduchú funkciu na pridanie hlavičiek k hlavičkám POST, čo nám umožní zobraziť sa v rovnakom prehliadači, akým ste prvý raz vstúpili na stránku. Otvorte súbor s hlavičkami, ktoré ste našli pomocou programu Firebug, a upravte tento textový súbor tak, aby zodpovedal. Nahraďte všetko v úvodzovkách správnou položkou zo zoznamu hlavičiek: 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, aplikácia/xml, aplikácia/xhtml+xml, text/html; q = 0,9, text/obyčajný; q = 0,8, obrázok/png, */ *; q = 0,5 "ACCEPT_LANGUAGE =" en-us, en; q = 0,5 "ACCEPT_ENCODING =" gzip, deflate "ACCEPT_CHARSET =" ISO-8859-1, utf-8; q = 0,7, *; q = 0,7 "KEEP_ALIVE =" 300 " CONNECTION = "keep-live" CONTENT_TYPE = "application/x-www-form-urlencoded" REFERER = "https://pubmatic.com/04_betasignin.jsp"CONTENT_LENGTH =" 60 "COOKIE =" utma = 103266945.1970108054.1210113004.1212104087.12; KADUSERCOOKIE = EA2C3249-E822-456E-847A-1FF0D4085A85; utmz = 103266945.1210113004.1.1.utmccn = (direct) | utmcsr = (direct) | utmcmd = (none); JSESSIONID = 60F194BE2A5 no-cache "CACHE_CONTROL =" no-cache "Tým sa vytvorí súbor premenných, ktoré potom môžete použiť na pripojenie k hlavičke nás tento kód: 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 = [(" Connection ", CONNECTION)] br.add_header = [(" Content-Type ", CONTENT_TYPE)] br.add_header = [(" Referer ", REFERER)] br.add_header = [("Content-Length", CONTENT_LENGTH)] br.add_headers = [("Cookie", COOKIE)] br.add_headers = [("Pragma", PRAGMA)] br.add_headers = [("Cache-Control", CACHE_CONTROL)] Keď zavoláme funkciu otvorenia stránky, hlavičky budú odoslané aj na server. br.open ("https://pubmatic.com/04_betasignin.jsp")

Krok 5: Mechanizované súbory cookie

Mechanizované cookies
Mechanizované cookies

Tento krok je ten, že mechanizácia automatizuje spracovanie súborov cookie, ale je dôležité vedieť, čo sa deje:

Pri odoslaní formulára máte správne hlavičky, ako keby ste ho odoslali pomocou funkcie JavaScript. Server potom autentifikuje tieto informácie a vygeneruje ID relácie a v prípade správneho používateľského mena a hesla ho uloží do súboru cookie. Dobrou správou je, že mechanizácia automaticky konzumuje a obnovuje súbory cookie, takže si s odosielaním a prijímaním súborov cookie nemusíte robiť starosti. Keď teda vytvoríte fungujúce ID relácie, budete môcť vstúpiť do sekcie webových stránok iba pre členov.

Krok 6: Kľúč k srdcu

Teraz, keď sme získali ID relácie a mechanizáciu sme uložili do súborov cookie, môžeme podľa JavaScriptu zistiť, kam musíme ísť. Pohľadom do „if (session_id! = Null) {// prihlásenie úspešné“zistíte, kam s úspechom. Pri pohľade na kód premiestnenia okna: „if (adurlbase.search (/pubmatic.com/)! = -1) {window.location =" https://pubmatic.com/05_homeloggedin.jsp " +"? V = " + Math.random ()*10 000; " vidíme, že musíme ísť na webovú stránku umiestnenú na https://pubmatic.com/05_homeloggedin.jsp?v=niektoré náhodné číslo. Vytvorme teda falošné náhodné číslo na zadanie a vytvorte novú inštanciu prehliadača na čítanie čerstvo otvorenej stránky: response2 = br.open („https://pubmatic.com/05_homeloggedin.jsp?v=2703“) A to by malo nech sa páči. Váš kód je teraz kompletný, pomocou správnych hlavičiek a mechanizátora obsluhy súborov cookie môžeme teraz pristupovať k vnútornostiam programu pubmatic. Otvorte terminál, načítajte balík python nižšie a prihláste sa. Ak to chcete urobiť, zadajte príkaz python2.5 a potom cestu k súboru.py.

Odporúča: