Kazalo:
- Korak: Zberite materiale
- 2. korak: Poiščite glave, potrebne za ustvarjanje seje
- 3. korak: Pripravite kodo
- 4. korak: Pošljite prave signale
- 5. korak: mehanizirani piškotki
- Korak 6: Ključ do srca
Video: Preiskava spletnega mesta Ajax z asinhronim obrazcem za prijavo: 6 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:08
Težava: orodja za pajkanje ne dovoljujejo preverjanja pristnosti pri prijavi AJAX.
Ta navodila vam bodo pokazala, kako se prijavite prek obrazca AJAX z uporabo Pythona in modula z imenom Mechanize. Pajki so programi za spletno avtomatizacijo, ki postajajo vse bolj priljubljen način zbiranja podatkov na spletu. Plazijo po spletu in zbirajo dragocene materiale za gorivo najmočnejših spletnih podjetij. Drugi se plazijo in zbirajo posebne nabore podatkov, da izboljšajo odločanje, ali sklepajo, kaj je trenutno "v", ali poiščejo najcenejše potovalne poti. Pajki (spletni pajki, spletni roboti ali strgalniki zaslona) so odlični za pretvorbo goopa HTML v nekakšen podobo inteligentnih podatkov, vendar imamo težave pri spletnih straneh, ki podpirajo AJAX in imajo seje, ki podpirajo JavaScript in piškotke, ki jih ni mogoče krmariti z običajnimi komplet orodij za pajkanje. V tem navodilu bomo dostopali do lastne strani članov na pubmatic.com. Ti koraki vam bodo pokazali način, ki ga morate upoštevati, vendar bo vaša stran drugačna. Zabavaj se!
Korak: Zberite materiale
Morali boste začeti dopolnjevati svoje programske vire. Potrebovali boste naslednje programe. Uporabite njihove vodnike, ki vam bodo pomagali pri namestitvi teh … Namestite FirebugTo je dodatek za Firefox Namestite Python Pojdite na: python.org Pojdite na: python.org Namestite mehanizirani modul Pridobite mehanizirajte Pridobite mehaniziranaDruga uporabna orodja za pajkanje: BeautifulSoup
2. korak: Poiščite glave, potrebne za ustvarjanje seje
Dobro izdelan pajek bo imel dostop do spletne strani, kot če bi šlo za brskalnik, ki ga nadzira človek in skriva namige o resničnem izvoru. Del interakcije med brskalniki in strežniki poteka prek zahtev GET in POST, ki jih najdete v naslovih (ti podatki so v brskalniku redko prikazani, vendar so zelo pomembni). Nekaj teh informacij si lahko ogledate s pritiskom na Ctrl I (v firefoxu), da odprete okno s podatki o strani. Če se želite prikriti kot brskalnik z blagimi manirami, se morate identificirati z istimi poverilnicami. Če bi se poskušali prijaviti v pubmatic z onemogočenim JavaScript v brskalniku, ne boste prišli daleč, saj preusmeritve potekajo prek javascripta. Glede na to, da večina brskalnikov pajkov nima tolmačev javascript, se bomo morali prijaviti prek druge poti. Začnimo s tem, da podatke o glavi pošljemo iz brskalnika, ko kliknemo na pošlji. Če bi bila to običajna prijava v brskalnik, bi uporabili Mechanize, da izpolnite obrazec in kliknite pošlji. Običajni prijavni obrazci so zajeti v oznako… in Mechanize bi to lahko predložil in brez težav raziskal naslednjo stran. Ker nimamo izpolnjene oznake obrazca, funkcijo oddaje obravnava javascript. Preverimo funkcijo submitForm podjetja Pubmatic. Če želite to narediti, najprej odprite spletno stran v firefoxu in vklopite firebug s klikom na kresnico v spodnjem desnem kotu. Nato kliknite zavihek skript, kopirajte vso prikazano kodo in jo prilepite v vaš najljubši program za urejanje besedila. Nato lahko izbrišete vso kodo, razen funkcije submitForm. Začne se s funkcijo "submitForm (theform) {" in vsem, kar je med tem in funkcijami, ki zapirajo kodrasti oklepaj "}". Pri zelo primitivni analizi te funkcije opazimo, da se zgodi nekaj preverjanja pristnosti, ki vrne spremenljivko, imenovano xmldoc, ki je razčlenjena kot xml. To je ključna lastnost AJAX -a, saj je anketiral strežnik in vrnil nekaj dokumentov XML, ki vsebuje drevo informacij. Vozlišče session_id vsebuje session_id, če je bilo preverjanje pristnosti uspešno, lahko to ugotovite tako, da pogledate ta del kode: "if (session_id! = Null) {// prijava uspešna". Zdaj želimo preprečiti, da bi nas ta del javascripta popeljal kamor koli, da bomo lahko videli, kaj je med preverjanjem pristnosti objavljeno na strežniku. Če želite to narediti, komentiramo vse preusmeritve oken, ki izgledajo takole: "window.location = …". Če želite to komentirati, pred njimi dodajte dvojne poševnice: "//window.location…" to preprečuje izvajanje kode. Lahko prenesete spodnjo datoteko Javascript, v kateri so že izvedene te spremembe. Kopirajte in prilepite ta urejeni del javascripta v okna konzole na desni strani in kliknite zaženi. To preglasi funkcijo javascript, ki je že na strani z našo novo različico. Zdaj, ko izpolnite poverilnice in kliknete predloži, bi morali videti, da informacije o glavi POST in GET napolnijo konzolo, vendar ne boste šli nikamor. če je mogoče, kopirajte in prilepite te podatke v beležnico.
3. korak: Pripravite kodo
Preden dodamo nove glave, ki smo jih našli, ustvarimo predlogo kode python za mehanizirano prijavo. To počnemo iz dveh razlogov, prvič, zato imamo komponento, ki deluje tako, da dodaja nove stvari, in drugič, da vidite, kako bi se običajno prijavili na spletno stran, ki ni AJAX-y. sledi. Ko končate, ga shranite kot youfilename.py nekje, kjer ga najdete. primerek brskalnika prek klica funkcije Browser (); br = Browser ()#Nastavite brskalnik tako, da ne upošteva zahtev spiders.txt#Naredite to previdno, če spletna stran ne mara pajkov, se bodo morda razburili, če vas najdejo.set_handle_robots (False) #Odprite stran, na katero se želite prijaviti, tobr.open ("https://pubmatic.com/04_betasignin.jsp") #Ker poznam ime obrazca, lahko preprosto izberem obrazec po imenu name.br. ("login")#Z imeni elementov obrazca vnesem imena elementov obrazcabr ['email'] = "[email protected]" br ['password'] = "Asquid22"#br.submit () pošlje obrazec in potegne nastalo stran, ustvarite nov primerek brskalnika#odgovor spodaj vsebuje nastalo stranresponse = br.submit ()#To bo natisnilo telo prejete strani#print response.read ()
4. korak: Pošljite prave signale
Mechanize ima preprosto funkcijo dodajanja glav v naslove POST, kar nam bo omogočilo prikaz v istem brskalniku, ki ste ga uporabili za prvi dostop do strani. Odprite datoteko z glavami, ki ste jih našli z uporabo Firebuga, in uredite to besedilno datoteko tako, da se ujema. Vse v narekovajih zamenjajte z ustreznim elementom iz naslova glave: 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 = "besedilo/xml, aplikacija/xml, aplikacija/xhtml+xml, besedilo/html; q = 0,9, besedilo/navadno; q = 0,8, slika/png, */ *; q = 0,5 "ACCEPT_LANGUAGE =" sl-us, sl; 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 = (neposredno) | utmcsr = (neposredno) | utmcmd = (nič); no-cache "CACHE_CONTROL =" no-cache "To ustvari niz spremenljivk, ki jih lahko nato uporabite za dodajanje v glavo ing this code: br.add_header = [("Host", HOST)] br.add_headers = [("Uporabniški agent", USER_AGENT)] br.add_headers = [("Sprejmi", 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 = [(" Povezava ", CONNECTION)] br.add_header = [(" Vrsta vsebine ", CONTENT_TYPE)] br.add_header = [(" Referer ", REFERER)] br.add_header = [("Dolžina vsebine", CONTENT_LENGTH)] br.add_headers = [("Piškotek", COOKIE)] br.add_headers = [("Pragma", PRAGMA)] br.add_headers = [("Nadzor predpomnilnika", CACHE_CONTROL)] Zdaj, ko pokličemo funkcijo odpiranja strani, bodo glave poslane tudi na strežnik. br.open ("https://pubmatic.com/04_betasignin.jsp")
5. korak: mehanizirani piškotki
Ta korak je zato, ker mehanizira avtomatizirano ravnanje s piškotki, vendar je pomembno vedeti, kaj se dogaja:
Ko je obrazec oddan, imate prave glave, kot da ste jih poslali s funkcijo javascript. Strežnik nato potrdi te podatke in ustvari ID seje ter jih shrani v piškotek, če sta uporabniško ime in geslo pravilna. Dobra novica je, da Mechanize samodejno poje in povrne piškotke, zato vam ni treba skrbeti glede pošiljanja in prejema piškotka. Ko ustvarite delujoč ID seje, lahko vnesete razdelek samo za člane na spletnem mestu.
Korak 6: Ključ do srca
Zdaj, ko smo pridobili ID seje in ga Mechanize shranili v piškotke, lahko sledimo javascript, da vidimo, kam moramo iti. Če pogledate v polje »if (session_id! = Null) {// prijava uspešna«, si oglejte, kam naj nadaljujete. Če pogledamo kodo za premestitev oken: "if (adurlbase.search (/pubmatic.com/)! = -1) {window.location =" https://pubmatic.com/05_homeloggedin.jsp " +"? V = " + Math.random ()*10000; " vidimo, da moramo obiskati spletno mesto na naslovu https://pubmatic.com/05_homeloggedin.jsp?v=neka naključna številka. Zato ustvarimo ponarejeno naključno številko za vnos in ustvarimo nov primerek brskalnika za branje na novo odprte strani: response2 = br.open ("https://pubmatic.com/05_homeloggedin.jsp?v=2703") In to bi moralo biti pa naj bo. Vaša koda je zdaj popolna, z uporabo ustreznih glav in mehaniziranega upravljalnika piškotkov lahko zdaj dostopamo do notranjosti pubmatic. Odprite terminal, naložite spodnji paket python in se prijavite. Če želite to narediti, vnesite python2.5 in nato pot do datoteke.py.
Priporočena:
Povlecite in ambientalno prikažite podatke s katerega koli spletnega mesta prek Wi -Fi -ja (indikator severnega sija) z NodeMcu: 6 korakov
Povlecite in ambientalno prikažite podatke s katerega koli spletnega mesta prek Wi -Fi -ja (kazalnik severnega sija) z NodeMcu: Moja motivacija: Videl sem veliko navodil za nastavitev/ uporabo NodeMCU (zgrajen na modulu ESP8266) za izdelavo projektov IoT (internet stvari) . Vendar pa je zelo malo teh vadnic imelo vse podrobnosti/ kodo/ diagrame za zelo novinca
Obvestilo obiskovalcev spletnega mesta z IFTTT: 6 korakov
Obvestilo obiskovalcev spletnega mesta z IFTTT: V tem navodilu boste prejeli obvestilo za Android, ko nekdo obišče vašo spletno stran. Zato morate za to imeti malo znanja o programskem jeziku PHP in osnovno znanje jezika Simple C, da boste vedeli, kako deluje ta aplikacija IFTTT dela (
Kako brezplačno dobiti Final Cut Pro neposredno s spletnega mesta Apple: 5 korakov
Kako brezplačno dobiti Final Cut Pro neposredno s spletnega mesta Apple: Pozdravljeni, ustvarjam videoposnetke Youtube in dolgo časa nisem mogel ustvariti želene vsebine zaradi omejitev iMovie. Za urejanje videoposnetkov uporabljam MacBook in vedno sem si želel vrhunsko programsko opremo za urejanje filmov, kot je Final Cut Pro t
Vadnica IO spletnega gonilnika z uporabo spletnega mesta v živo in primeri dela: 8 korakov
Vadnica IO spletnega gonilnika z uporabo spletnega mesta v živo in primeri dela: vadnica spletnega gonilnika IO z uporabo spletnega mesta v živo in primeri dela Zadnja posodobitev: 26. 7. 2015 (Pogosto preverjajte, ko posodabljam ta navodila z več podrobnostmi in primeri) Ozadje Nedavno sem imel zanimiv izziv, ki se mi je predstavil. Moral sem
Nastavitev spletnega mesta z Googlovim ustvarjalcem strani: 6 korakov
Nastavitev spletnega mesta z Googlovim ustvarjalcem strani: Kako nastaviti spletno mesto z novim ustvarjalcem strani Google Labs. (Kako brezplačno narediti preprosto spletno mesto velikosti 100 MB in ga pripraviti popoldne.) Vključno s tem, kako povezati stran z obrazcem na stran, povezavo do drugih strani, povezavo do naloženih datotek html, slike,