Sadržaj:
- Korak 1: Prikupite materijale
- Korak 2: Pronađite zaglavlja potrebna za kreiranje sesije
- Korak 3: Pripremite kôd
- Korak 4: Pošaljite prave signale
- Korak 5: Mehanizirani kolačići
- Korak 6: Ključ do srca
Video: Upotreba Ajax web stranice s asinhronim obrascem za prijavu: 6 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:09
Problem: Spidering alati ne dopuštaju autentifikaciju AJAX prijave.
Ova instrukcija će vam pokazati kako se prijaviti putem AJAX obrasca pomoću Pythona i modula pod nazivom Mechanize. Pauci su programi za automatizaciju weba koji postaju sve popularniji način prikupljanja podataka putem interneta. Puzaju po webu skupljajući dragocjene materijale za pogon najmoćnijih web kompanija širom svijeta. Drugi puze okolo i prikupljaju određene skupove podataka kako bi poboljšali donošenje odluka, ili zaključili što je trenutno "unutra" ili pronašli najjeftinije rute putovanja. Pauci (alati za indeksiranje weba, webbotovi ili strugači ekrana) odlični su za pretvaranje HTML goopa u neku vrstu inteligentnih podataka, ali imamo problem kada su u pitanju AJAX web stranice sa JavaScriptom i sesijama omogućenim kolačićima koje se ne mogu kretati uobičajenim načinom set spidering alata. U ovom uputstvu pristupit ćemo vlastitoj stranici za članove na pubmatic.com. Ovi koraci će vam pokazati metodu koju morate slijediti, ali vaša stranica bit će drugačija. Zabavi se!
Korak 1: Prikupite materijale
Morat ćete početi dopunjavati svoje programske resurse. Trebat će vam sljedeći programi. Upotrijebite njihove vodiče da vam pomognu u instaliranju ovih … Instalirajte FirebugTo je dodatak za FirefoxInstalirajte PythonIdite na: python.orgIdite na: python.orgInstalirajte mehanizirani modulDobite mehanizirajteDobite mehaniziraneOstali korisni alati za spidering: BeautifulSoup
Korak 2: Pronađite zaglavlja potrebna za kreiranje sesije
Dobro izrađen pauk pristupit će web stranici kao da je to preglednik kojim kontrolira ljudsko biće, skrivajući tragove o svom pravom porijeklu. Dio interakcije između preglednika i servera odvija se putem GET i POST zahtjeva koje možete pronaći u zaglavljima (ove se informacije rijetko prikazuju u pregledniku, ali su vrlo važne). Neke od ovih informacija možete pogledati pritiskom na Ctrl I (u firefoxu) da biste otvorili prozor sa informacijama o stranici. Da biste se prerušili u pregledač blagih manira, morate se identificirati koristeći iste vjerodajnice. Ako biste se pokušali prijaviti na pubmatic sa onemogućenim javascript -om u svom pregledniku, ne biste stigli daleko jer se preusmjeravanja vrše putem javascripta. Pa s obzirom da većina pretraživača pauka nema javascript tumače, morat ćemo se prijaviti putem alternativne rute. Počnimo tako što ćemo informacije o zaglavlju poslati iz preglednika kada kliknete na Pošalji. Da je ovo obična prijava u preglednik, upotrijebili biste Mechanize za popunjavanje obrasca i kliknite Pošalji. Normalni obrasci za prijavu su inkapsulirani unutar… oznake i Mechanize bi mogao to poslati i pregledati sljedeću stranicu bez problema. Budući da nemamo popunjenu oznaku obrasca, funkcijom slanja upravlja javascript. Provjerimo funkciju submitForm pubmatic -a. Da biste to učinili, prvo otvorite web stranicu u firefoxu i uključite firebug klikom na krijesnicu u donjem desnom kutu. Zatim kliknite karticu skripta, kopirajte sav kôd koji se pojavi i zalijepite ga u svoj omiljeni softver za uređivanje teksta. Zatim možete izbrisati sav kôd osim funkcije submitForm. Počinje s funkcijom "submitForm (theform) {" i svime između ovoga i funkcijama koje zatvaraju zavojitu zagradu "}". Analizirajući ovu funkciju vrlo primitivno, primjećujemo da se događa autentifikacija koja vraća varijablu xmldoc koja se raščlanjuje kao xml. Ovo je ključna karakteristika AJAX -a jer je anketirao server i vratio neki XML dokument koji sadrži stablo informacija. Čvor session_id sadrži session_id ako je autentikacija bila uspješna, možete to reći gledajući ovaj bit koda: "if (session_id! = Null) {// prijava uspješna". Sada želimo spriječiti da nas ovaj dio javascripta odvede bilo gdje, tako da možemo vidjeti šta se objavljuje na serveru tokom autentifikacije. Da bismo to učinili, komentiramo sva preusmjeravanja prozora koja izgledaju ovako: "window.location = …". Da biste ovo komentirali, dodajte dvostruke kose crte ispred njih ovako: "//window.location…" ovo sprječava pokretanje koda. Možete preuzeti Javascript datoteku ispod koje su već izvršene ove izmjene. Kopirajte i zalijepite ovaj uređeni dio javascripta u prozore konzole s desne strane i kliknite Pokreni. Ovo poništava funkciju javascript koja se već nalazi na stranici s našom novom verzijom. Sada kada popunite svoje vjerodajnice i kliknete Pošalji, trebali biste vidjeti da POST i GET informacije zaglavlja ispunjavaju konzolu, ali nećete nikuda ići. Informacije POST su informacije koje su poslužitelju AJAX funkcije donijele, želite biti što više ovako je moguće, kopirajte i zalijepite te podatke u bilježnicu.
Korak 3: Pripremite kôd
Prije nego što dodamo nova zaglavlja koja smo pronašli, kreirajmo predložak Python koda za mehanizaciju prijave. Radimo to iz dva razloga, prvi, tako da imamo komponentu koja radi na dodavanje novih stvari, i drugi, tako da vidite kako biste se normalno prijavili na web stranicu koja nije AJAX-y. Otvorite bilježnicu ili ekvivalent, pa kopirajte i zalijepite datoteku slijedeći. Kada završite, spremite ga kao youfilename.py negdje gdje možete pronaći.#!/Usr/bin/python#-*-kodiranje: utf-8-*-#Počnite s uvozom vašeg modula: iz mehaniziranja uvoza Pretraživač#Kreirajte svoj instanca preglednika putem poziva funkcije Browser (); br = Browser ()#Postavite preglednik tako da zanemaruje zahtjeve spiders.txt#Učinite to pažljivo, ako web stranica ne voli pauke, možda će biti uznemireni ako vas pronađu.set_handle_robots (False) #Otvorite stranicu na koju se želite prijaviti tobr.open ("https://pubmatic.com/04_betasignin.jsp") #Budući da znam naziv obrasca, mogu jednostavno odabrati obrazac po imenu name.br. ("login")#Koristeći nazive elemenata obrasca unosim imena elemenata obrascabr ['email'] = "[email protected]" br ['password'] = "Asquid22"#br.submit () šalje obrazac i povlači rezultirajuću stranicu, kreirate novu instancu preglednika#odgovor ispod sadrži rezultirajuću stranicuresponse = br.submit ()#Ovo će ispisati tijelo primljene web stranice#print response.read ()
Korak 4: Pošaljite prave signale
Mechanize ima jednostavnu funkciju dodavanja zaglavlja u zaglavlja POST, što će nam omogućiti da se prikažemo u istom pregledniku koji ste koristili za pristup stranici prvi put. Otvorite datoteku sa zaglavljima koja ste pronašli pomoću Firebuga i uredite ovu tekstualnu datoteku tako da odgovara. Zamijenite sve u navodnicima odgovarajućom stavkom iz popisa zaglavlja: 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 =" sr-hr, sr; q = 0,5 "ACCEPT_ENCODING =" gzip, deflacija "ACCEPT_CHARSET =" ISO-8859-1, utf-8; q = 0,7, *; q = 0,7 "KEEP_ALIVE =" 300 " CONNECTION = "keep-living" CONTENT_TYPE = "application/x-www-form-urlencoded" REFERER = "https://pubmatic.com/04_betasignin.jsp"CONTENT_LENGTH =" 60 "COOKIE =" utma = 103266945.1970108054.1210113004.121210201; KADUSERCOOKIE = EA2C3249-E822-456E-847A-1FF0D4085A85; utmz = 103266945.1210113004.1.1.utmccn = (direktno) | utmcsr = (direktno) | utmcmd = (ništa); no-cache "CACHE_CONTROL =" no-cache "Ovo stvara skup varijabli koje možete koristiti za dodavanje u zaglavlje ovaj kod: br.add_header = [("Host", HOST)] br.add_headers = [("Korisnički agent", USER_AGENT)] br.add_headers = [("Prihvati", ACCEPT)] br.add_header = [("Prihvati-jezik", ACCEPT_LANGUAGE)] br.add_headers = [("Prihvati-kodiranje", ACCEPT_ENCODING)] br.add_headers = [("Prihvati-Charset", ACCEPT_CHARSET)] br.add_header = [("Keep-Alive" ", KEEP_ALIVE)] br.add_headers = [(" Veza ", CONNECTION)] br.add_header = [(" Vrsta sadržaja ", CONTENT_TYPE)] br.add_header = [(" Referer ", REFERER)] br.add_header = [("Dužina sadržaja", CONTENT_LENGTH)] br.add_headers = [("Kolačić", COOKIE)] br.add_headers = [("Pragma", PRAGMA)] br.add_headers = [("Kontrola predmemorije", CACHE_CONTROL)] Sada kada pozovemo funkciju otvaranja stranice, zaglavlja će biti poslana i na server. br.open ("https://pubmatic.com/04_betasignin.jsp")
Korak 5: Mehanizirani kolačići
Ovaj korak je zbog toga što mehanizacija automatizira rukovanje kolačićima, ali važno je znati što se događa:
Kad se obrazac pošalje, imate prava zaglavlja kao da ste ih poslali pomoću funkcije javascript. Poslužitelj zatim provjerava autentičnost ovih podataka i generira ID sesije te ih sprema u kolačić ako su korisničko ime i lozinka ispravni. Dobra vijest je da Mechanize automatski jede i regurgira kolačiće tako da ne morate brinuti o slanju i primanju kolačića. Dakle, nakon što kreirate ID sesije koji funkcionira, tada možete unijeti odjeljak web stranice samo za članove.
Korak 6: Ključ do srca
Sada kada smo pribavili ID sesije i Mechanize ga spremili u svoje kolačiće, možemo pratiti javascript kako bismo vidjeli kamo trebamo ići. Gledajući unutar "if (session_id! = Null) {// prijava uspješna" da vidite gdje ići na uspjeh. Gledajući kod za premještanje prozora: "if (adurlbase.search (/pubmatic.com/)! = -1) {window.location =" https://pubmatic.com/05_homeloggedin.jsp " +"? V = " + Math.random ()*10000; " vidimo da moramo otići na web stranicu koja se nalazi na https://pubmatic.com/05_homeloggedin.jsp?v=nekoliko nasumičan broj. Dakle, jednostavno stvorimo lažni slučajni broj za unos i stvorimo novu instancu preglednika za čitanje tek otvorene stranice: response2 = br.open ("https://pubmatic.com/05_homeloggedin.jsp?v=2703") A to bi trebalo neka bude. Vaš kôd je sada potpun, koristeći odgovarajuća zaglavlja i mehanizirani rukovatelj kolačićima, sada možemo pristupiti unutrašnjosti pubmatic. Otvorite terminal, učitajte donji paket python i prijavite se. Da biste to učinili, upišite python2.5, a zatim putanju datoteke do.py datoteke.
Preporučuje se:
Kako do besplatne web stranice (TLD, hosting, SSL): 16 koraka
Kako nabaviti besplatnu web stranicu (TLD, hosting, SSL): Web stranice postaju velika stvar. Ranije su velike kompanije, poput Microsofta, Googlea i tako dalje, imale svoje web stranice. Možda su to učinili i neki blogeri i manje kompanije. Ali sada, posebno za vrijeme ove pandemije COVID-19 (da, pišem ovo 2020.)
ESP8266 POV ventilator sa satom i ažuriranjem teksta web stranice: 8 koraka (sa slikama)
ESP8266 POV ventilator sa satom i ažuriranjem teksta na web stranici: Ovo je promjenjiva brzina, POV (Persistence Of Vision), ventilator koji s prekidima prikazuje vrijeme i dvije tekstualne poruke koje se mogu ažurirati "u hodu". je također web -stranica s jednom stranicom koja vam omogućuje da promijenite dva teksta
IO vodič za Upravljački program web upravljačkog programa Korištenje web stranice uživo i primjeri rada: 8 koraka
IO vodič za IO web upravljačkog programa Korištenje web stranice uživo i primjeri rada: IO vodič za upravljački program web upravljača Korištenje web stranice uživo i primjeri rada Zadnje ažuriranje: 26.7.2015. (Često provjeravajte dok ažuriram ove upute s više detalja i primjera) Pozadina Nedavno sam imao zanimljiv izazov pred mene. Trebao sam
ESP8266 -NODEMCU WiFi modul od 3 USD #2 - Bežični pinovi za upravljanje putem web stranice: 9 koraka (sa slikama)
ESP8266 -NODEMCU $ 3 WiFi modul #2 - Bežični pinovi za upravljanje putem WEB STRANICE: Stigao je novi svijet ovih mikroračunanja, a ovo je ESP8266 NODEMCU. Ovo je prvi dio koji prikazuje kako biste mogli instalirati okruženje esp8266 u svoj arduino IDE kroz video za početak i kao dijelove u
Postavljanje web stranice pomoću Googleovog kreatora stranice: 6 koraka
Postavljanje web stranice pomoću Googleovog Stvoritelja stranica: Kako postaviti web stranicu s novim Stvoriteljem stranica Google Labs. (Kako besplatno napraviti jednostavnu web stranicu od 100 MB i postaviti je popodne.) Uključujući kako, povežite stranicu obrasca sa stranicom, vezu do drugih stranica, vezu do učitanih html datoteka, uključite slike