Satura rādītājs:
- 1. darbība: apkopojiet materiālus
- 2. darbība. Atrodiet galvenes, kas nepieciešamas, lai izveidotu sesiju
- 3. darbība: sagatavojiet kodu
- 4. darbība: nosūtiet pareizos signālus
- 5. darbība: mehanizētās sīkdatnes
- 6. solis: Sirds atslēga
Video: Zirnekļošana Ajax vietnē ar asinhronu pieteikšanās veidlapu: 6 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:58
Problēma: zirnekļošanas rīki neatļauj AJAX pieteikšanās autentifikāciju.
Šī pamācība parādīs, kā pieteikties, izmantojot AJAX veidlapu, izmantojot Python un moduli ar nosaukumu Mechanize. Zirnekļi ir tīmekļa automatizācijas programmas, kas kļūst arvien populārāks veids, kā cilvēki apkopo datus tiešsaistē. Viņi rāpo pa tīmekli, vācot dārgus materiālus, lai veicinātu visspēcīgāko tīmekļa kompāniju darbību. Citi rāpo apkārt un apkopo konkrētus datu kopumus, lai uzlabotu lēmumu pieņemšanu, vai secinātu, kas pašlaik atrodas, vai arī atrastu lētākos ceļojumu maršrutus. Zirnekļi (tīmekļa rāpuļprogrammas, tīmeklīši vai ekrānu skrāpji) ir lieliski piemēroti, lai HTML goop pārvērstu par inteliģentu datu līdzību, taču mums ir problēma, runājot par AJAX iespējotām tīmekļa lapām, kurās ir JavaScript un sīkfailu iespējotas sesijas, kuras nav navigējamas ar parasto zirnekļošanas rīku komplekts. Šajā pamācībā mēs piekļūsim savai dalībnieku lapai vietnē pubmatic.com. Šīs darbības parādīs metodi, kas jāievēro, taču jūsu lapa būs atšķirīga. Izklaidējieties!
1. darbība: apkopojiet materiālus
Jums jāsāk papildināt savus programmēšanas resursus. Jums būs nepieciešamas šādas programmas. Izmantojiet viņu rokasgrāmatas, lai palīdzētu jums instalēt šīs … Instalēt FirebugTas ir Firefox papildinājums Instalējiet PythonGo to: python.orgPārejiet uz: python.orgInstalējiet Mechanize ModuleGet MechanizeGet MechanizeCiti noderīgi zirnekļošanas rīki: BeautifulSoup
2. darbība. Atrodiet galvenes, kas nepieciešamas, lai izveidotu sesiju
Labi izstrādāts zirneklis piekļūs tīmekļa lapai tā, it kā tas būtu pārlūkprogramma, ko kontrolē cilvēks, un tiek slēptas norādes par tās patieso izcelsmi. Daļa mijiedarbības starp pārlūkprogrammām un serveriem notiek, izmantojot GET un POST pieprasījumus, kurus varat atrast galvenēs (šī informācija pārlūkprogrammā tiek parādīta reti, taču tā ir ļoti svarīga). Šo informāciju varat apskatīt, nospiežot taustiņu Ctrl I (pārlūkprogrammā Firefox), lai atvērtu logu Lapas informācija. Lai slēptu sevi kā vieglas uzvedības pārlūku, jums ir jāidentificējas, izmantojot tos pašus akreditācijas datus. Ja mēģinātu pieteikties publikācijās, pārlūkprogrammā atspējojot javascript, jūs netiktu tālu, jo novirzīšana tiek veikta, izmantojot javascript. Tātad, ņemot vērā, ka lielākajai daļai zirnekļu pārlūkprogrammu nav JavaScript tulku, mums būs jāizmanto pieteikšanās, izmantojot alternatīvu maršrutu. Sāksim ar to, ka noklikšķinot uz Iesniegt, no pārlūkprogrammas tiek nosūtīta galvenes informācija. Ja tas būtu parasts pārlūkprogrammas pieteikšanās, veidlapas aizpildīšanai izmantojiet Mechanize un noklikšķiniet uz Iesniegt. Parastās pieteikšanās veidlapas ir ievietotas… tagā, un Mechanize bez problēmām varētu to iesniegt un aptaujāt nākamo lapu. Tā kā mums nav aizpildītas veidlapas taga, iesniegšanas funkciju apstrādā javascript. Pārbaudīsim pubmatic funkciju SubmitForm. Lai to izdarītu, vispirms atveriet tīmekļa vietni pārlūkprogrammā Firefox un ieslēdziet firebug, noklikšķinot uz firefly apakšējā labajā stūrī. Pēc tam noklikšķiniet uz cilnes skripts, nokopējiet visu parādīto kodu un ielīmējiet to savā iecienītākajā programmatūras teksta rediģēšanas bitā. Pēc tam jūs varat izdzēst visu kodu, izņemot funkciju submittedForm. Tas sākas ar funkciju "submittedForm (theform) {" un viss, kas atrodas starp šo un funkcijām, kas aizver cirtainu kronšteinu "}". Analizējot šo funkciju ļoti primitīvi, mēs pamanām, ka notiek kāda autentifikācija, atgriežot mainīgo ar nosaukumu xmldoc, kas tiek parsēts kā xml. Šī ir AJAX galvenā iezīme, tā ir aptaujājusi serveri un atgriezusi kādu XML dokumentu, kas satur informācijas koku. Mezgls session_id satur sesijas ID, ja autentifikācija bija veiksmīga, to var pateikt, apskatot šo koda bitu: "if (session_id! = Null) {// login veiksmīga". Tagad mēs vēlamies nepieļaut, ka šis javascript fragments mūs aizved jebkur, lai autentifikācijas laikā mēs varētu redzēt, kas tiek ievietots serverī. Lai to izdarītu, mēs komentējam visus logu novirzīšanas gadījumus, kas izskatās šādi: "window.location =…". Lai to komentētu, pirms tiem pievienojiet dubultās slīpsvītras: "//window.location…", tas neļauj izpildīt kodu. Jūs varat lejupielādēt zemāk esošo Javascript failu, kurā šie labojumi jau ir veikti. Kopējiet un ielīmējiet šo rediģēto javascript fragmentu konsoles logos labajā pusē un noklikšķiniet uz Palaist. Ar mūsu jauno versiju tas ignorē JavaScript funkciju, kas jau atrodas lapā. Tagad, aizpildot savus akreditācijas datus un noklikšķinot uz Iesniegt, jums vajadzētu redzēt, ka POST un GET galvenes informācija aizpilda konsoli, bet jūs nekur nedosieties. POST informācija ir informācija, kas serverī tiek ielādēta ar AJAX funkcijām, jūs vēlaties būt tikpat daudz pēc iespējas līdzīgāk, kopējiet un ielīmējiet šo informāciju piezīmju grāmatiņā.
3. darbība: sagatavojiet kodu
Pirms pievienojam atrastās jaunās galvenes, izveidosim veidni Veidot pieteikšanās python kodu. Mēs to darām divu iemeslu dēļ, pirmkārt, tāpēc mums ir komponents, kas darbojas, lai pievienotu jaunas lietas, un, otrkārt, lai jūs redzētu, kā parasti pierakstāties tīmekļa vietnē, kas nav AJAX-y. Atveriet piezīmju grāmatiņu vai līdzvērtīgu un kopējiet un ielīmējiet sekojošs. Kad esat pabeidzis, saglabājiet to kā youfilename.py kaut kur.#!/Usr/bin/python#-*-kodēšana: utf-8-*-#Sāciet ar savu moduļu importēšanu: no mehanizētas importēšanas Pārlūkprogramma#Izveidojiet savu pārlūkprogrammas gadījums, izmantojot funkcijas Browser () zvanu; br = Browser ()#Iestatiet pārlūkprogrammu tā, lai tā ignorētu zirnekļus..set_handle_robots (Nepareizi) #Atveriet lapu, kurā vēlaties pieteikties, lai tobr.open ("https://pubmatic.com/04_betasignin.jsp") #Tā kā es zinu veidlapas nosaukumu, es varu vienkārši izvēlēties formu pēc nosaukuma br.select_form ("login")#Izmantojot veidlapas elementu nosaukumus, es ievadu formas elementu nosaukumusbr ['email'] = "[email protected]" br ['password'] = "Asquid22"#br.submit () izsūta veidlapu un izvelk iegūto lapu, jūs izveidojat jaunu pārlūkprogrammas instanci
4. darbība: nosūtiet pareizos signālus
Mechanize ir vienkārša funkcija, lai pievienotu galvenes galvenēm POST, tas ļaus mums parādīties tajā pašā pārlūkprogrammā, kuru izmantojāt, lai pirmo reizi piekļūtu lapai. Atveriet failu ar galvenēm, kuras atradāt, izmantojot Firebug, un rediģējiet šo teksta failu, lai tas atbilstu. Aizstājiet visu pēdiņās ar atbilstošu vienumu no galvenes saraksta: 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 =" lv, lv; q = 0,5 "ACCEPT_ENCODING =" gzip, deflate "ACCEPT_CHARSET =" ISO-8859-1, utf-8; q = 0.7, *; q = 0.7 "KEEP_ALIVE =" 300 " CONNECTION = "saglabāt dzīvību" 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 = (tiešs) | utmcsr = (tiešs) | utmcmd = (nav); JSESSIONID = 60F194BC2C2C2C2 no-cache "CACHE_CONTROL =" no-cache "Tādējādi tiek izveidota mainīgo kopa, ko pēc tam varat izmantot, lai pievienotu galvenei ievadot šo kodu: 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 = [(" Savienojums ", SAVIENOJUMS)] 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)] Tagad, kad mēs saucam par lapas atvēršanas funkciju, galvenes tiks nosūtītas arī uz serveri. br.open ("https://pubmatic.com/04_betasignin.jsp")
5. darbība: mehanizētās sīkdatnes
Šis solis ir tāpēc, ka mehanizācija automatizē sīkfailu apstrādi, taču ir svarīgi zināt, kas notiek:
Kad veidlapa ir iesniegta, jums ir pareizās galvenes, it kā jūs iesūtītu, izmantojot JavaScript funkciju. Pēc tam serveris autentificē šo informāciju un ģenerē sesijas ID un saglabā to sīkfailā, ja lietotājvārds un parole ir pareizi. Labā ziņa ir tā, ka Mechanize automātiski apēd un noregulē sīkfailus, tāpēc jums nav jāuztraucas par sīkdatnes nosūtīšanu un saņemšanu. Tātad, tiklīdz esat izveidojis funkcionējošu sesijas ID, varat ievadīt vietnes tikai dalībnieku sadaļu.
6. solis: Sirds atslēga
Tagad, kad esam ieguvuši sesijas ID un Mechanize to saglabājuši sīkfailos, mēs varam sekot javascript, lai redzētu, kur mums jādodas. Skatoties iekšā "ja (sesijas_id! = Null) {// pieteikšanās ir veiksmīga", lai redzētu, kur gūt panākumus. Skatoties uz loga pārvietošanas kodu: "if (adurlbase.search (/pubmatic.com/)! = -1) {window.location =" https://pubmatic.com/05_homeloggedin.jsp " +"? V = " + Matemātikas gadījuma rakstura ()*10000; " mēs redzam, ka mums jādodas uz vietni, kas atrodas vietnē https://pubmatic.com/05_homeloggedin.jsp?v=kāds nejaušs skaitlis. Tāpēc vienkārši izveidosim viltus izlases numuru, lai ievadītu, un izveidosim jaunu pārlūkprogrammas instanci, lai izlasītu tikko atvērto lapu: response2 = br.open ("https://pubmatic.com/05_homeloggedin.jsp?v=2703") Un tam vajadzētu lai tā būtu. Jūsu kods tagad ir pabeigts, izmantojot atbilstošas galvenes un mehanizējot sīkfailu apstrādātāju, mēs tagad varam piekļūt pubmatic iekšienei. Atveriet termināli, ielādējiet zemāk esošo python pakotni un piesakieties. Lai to izdarītu, ierakstiet python2.5 un pēc tam failu ceļu uz.py failu.
Ieteicams:
DIY Windows pieteikšanās atslēga: 5 soļi
DIY Windows pieteikšanās atslēga: vai jums ir apnicis, ka logi, lūdzot ievadīt paroli, ikreiz, kad piesakāties? Nu, jūs varat iestatīt tapu; to ir viegli atcerēties? Tomēr tapa nav tik droša, it īpaši, ja klēpjdatoru izmantojat publiski, to ir vieglāk noķert nekā
Vienkārša sērijveida failu pieteikšanās sistēma ar ielādes joslu: 5 soļi
Vienkārša sērijveida pieteikšanās sistēma ar ielādes joslu: Šeit mēs kopīgojam partijas failu pieteikšanās sistēmai ar ielādes joslu. Mēs parādīsim jums kodu un arī parādīsim, kā to izmantot. Varat arī apmeklēt mūsu emuāru, lai uzzinātu vairāk partijas failu kodu. FFLocker 1.0: http://errorcode401.blogspot.in/2013/06/FFlocker-1.0.html Rar
EAL - pieteikšanās sistēma: 4 soļi
EAL - pieteikšanās sistēma: IntroVi var valgt og lave et adgangskontrol system, som via Arduino kanstyres med brikker og kort. Viņas labākās lietas det hvem der skal have tilladelse til at komme igennem en specificik d ø r. Dette lagers i en database, som vi har oprettet. Es databa
Partijas pieteikšanās ekrāns: 5 soļi
Partijas pieteikšanās ekrāns: Šeit ir neliela programma, kas ļauj reģistrēties un pieteikties partijā, cerot, ka jums patiks
Iegūstiet klasisku pieteikšanās ekrānu operētājsistēmā Windows Vista: 4 soļi
Iegūstiet klasisku pieteikšanās ekrānu operētājsistēmā Windows Vista: sveiciena ekrāns, kurā tiek parādīti visi lietotāji, lietotāja ērtībai tika ieviests sistēmā Windows XP. Vadības panelī bija iespēja mainīt to atpakaļ uz drošāku, klasisku pieteikšanās ekrānu. Tas tika noņemts no Vista iespējām, bet es