Tartalomjegyzék:
- Lépés: Gyűjtse össze az anyagokat
- 2. lépés: Keresse meg a munkamenet létrehozásához szükséges fejléceket
- 3. lépés: Készítse elő a kódot
- 4. lépés: Küldje el a megfelelő jeleket
- 5. lépés: Gépesített cookie -k
- 6. lépés: Kulcs a szívhez
Videó: Az Ajax webhely pókhálózása aszinkron bejelentkezési űrlappal: 6 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:44
A probléma: A pókhálózási eszközök nem teszik lehetővé az AJAX bejelentkezési hitelesítést.
Ez az utasítás megmutatja, hogyan lehet bejelentkezni AJAX űrlapon keresztül Python és a Mechanize nevű modul használatával. A pókok olyan webes automatizálási programok, amelyek egyre népszerűbbek az emberek online adatgyűjtési módjában. Kúsznak a weben, és értékes anyagokat gyűjtenek, hogy támogassák a környék legerősebb webcégeit. Mások mászkálnak, és bizonyos adathalmazokat gyűjtenek a döntéshozatal javítása érdekében, vagy arra következtetnek, hogy mi van jelenleg, vagy megtalálják a legolcsóbb utazási útvonalakat. A pókok (webrobotok, webbotok vagy képernyőkaparók) kiválóan alkalmasak arra, hogy a HTML goop -ot intelligens adatok látszatává alakítsák, de problémánk van az AJAX -kompatibilis weboldalakkal kapcsolatban, amelyek JavaScript- és cookie -engedélyezett munkameneteket tartalmaznak, és amelyek nem navigálhatók a normál adatokkal pókháló eszközkészlet. Ebben az utasításban a pubmatic.com webhelyen fogjuk elérni saját tagoldalunkat. Ezek a lépések megmutatják a követendő módszert, de az oldala más lesz. Érezd jól magad!
Lépés: Gyűjtse össze az anyagokat
El kell kezdenie a programozási erőforrások kiegészítését. A következő programokra lesz szüksége. Használja útmutatóikat a telepítéshez… A Firebug telepítése Ez egy Firefox -kiegészítő
2. lépés: Keresse meg a munkamenet létrehozásához szükséges fejléceket
Egy jól kidolgozott pók úgy fog hozzáférni a weboldalhoz, mintha egy böngésző lenne, amelyet egy ember irányít, és rejtve marad a valódi eredetére vonatkozó nyomokról. A böngészők és a kiszolgálók közötti interakció egy része a fejlécben található GET és POST kéréseken keresztül történik (ez az információ ritkán jelenik meg egy böngészőben, de nagyon fontos). Ezeket az információkat megtekintheti a Ctrl I billentyű lenyomásával (Firefoxban) az Oldalinformáció ablak megnyitásához. Ha enyhe modorú böngészőnek szeretné álcázni magát, azonos azonosítóval kell azonosítania magát. Ha megpróbál bejelentkezni a pubmatic -ba, és a böngészőjében le van tiltva a javascript, akkor nem juthat messzire, mivel az átirányítások javascripten keresztül történnek. Ha figyelembe vesszük, hogy a legtöbb pókböngésző nem rendelkezik javascript -értelmezőkkel, akkor a bejelentkezéshez egy alternatív útvonalon kell hozzáférnünk. Kezdjük azzal, hogy a fejléc adatait elküldjük a böngészőből, amikor a Küldés gombra kattint. Ha ez egy szokásos böngésző bejelentkezés, akkor a Mechanize segítségével töltse ki az űrlapot, és kattintson a Küldés gombra. A normál bejelentkezési űrlapok egy… címkébe vannak beágyazva, és a Mechanize gond nélkül el tudja küldeni ezt, és lekérdezheti a következő oldalt. Mivel nincs kitöltött űrlapcímkénk, a beküldési funkciót a javascript kezeli. Ellenőrizzük a pubmatic sendForm függvényét. Ehhez először nyissa meg a weboldalt a Firefoxban, és kapcsolja be a firebugot a jobb alsó sarokban található szentjánosbogárra kattintva. Ezután kattintson a szkript fülre, másolja ki az összes megjelenő kódot, és illessze be a kedvenc szövegszerkesztő szoftverébe. Ezután törölheti az összes kódot, kivéve a submittedForm függvényt. Ez a "submittedForm (theform) {" függvénnyel kezdődik, és minden, ami e között van, és a függvények zárják a gömbölyű zárójelet "}". Ennek a funkciónak a nagyon primitív elemzésekor észrevesszük, hogy bizonyos hitelesítés során visszajön az xmldoc nevű változó, amelyet xml -ként elemeznek. Ez az AJAX egyik legfontosabb jellemzője, amely lekérdezte a szervert, és visszahozott néhány XML dokumentumot, amely információfát tartalmaz. A session_id csomópont tartalmazza a session_id azonosítót, ha a hitelesítés sikeres volt, ezt a következő kódrészletből megnézheti: "if (session_id! = Null) {// bejelentkezés sikeres". Most szeretnénk megakadályozni, hogy ez a javascript -bit bárhová elvigyen minket, hogy láthassuk, mit tesznek közzé a szerverre a hitelesítés során. Ehhez megjegyzéseket fűzünk az ablak átirányításokhoz, amelyek így néznek ki: "window.location =…". Ha megjegyzést szeretne tenni, adjon kettős perjeleket eléjük, így: "//window.location…" ez megakadályozza a kód futtatását. Letöltheti az alábbi Javascript -fájlt, amelyen már végrehajtották ezeket a módosításokat. Másolja és illessze be ezt a szerkesztett javascript -fájlt a konzol ablakába, majd kattintson a Futtatás gombra. Ez felülírja a javascript függvényt az oldalon az új verzióval. Most, amikor kitölti hitelesítő adatait, és rákattint a Küldés gombra, látnia kell, hogy a POST és a GET fejléc információ kitölti a konzolt, de nem megy sehová. A POST információ az AJAX funkciók által a szerverre küldött információ, annyi szeretne lenni mint ez lehetséges, másolja és illessze be ezeket az információkat a jegyzettömbbe.
3. lépés: Készítse elő a kódot
Mielőtt hozzáadnánk a talált új fejléceket, hozzunk létre egy sablonos bejelentkezési bejelentkezési python kódot. Ezt két okból tesszük, először is, tehát van egy összetevőnk, amely új tartalmak hozzáadására szolgál, másodszor pedig, hogy lássa, hogyan szeretne általában bejelentkezni egy nem AJAX-y weboldalra. Nyissa meg a jegyzettömböt vagy azzal egyenértékű fájlt, és másolja be következő. Ha elkészült, mentse el valahova, ahol megtalálhatja a böngészőpéldány a Browser () függvényhíváson keresztül; br = Browser ()#Állítsa be a böngészőt, hogy az figyelmen kívül hagyja a spiders.txt kéréseket#Ezt óvatosan tegye meg, ha a weboldal nem szereti a pókokat, akkor idegesek lehetnek, hogy megtalálják.set_handle_robots (Hamis) #Nyissa meg a bejelentkezni kívánt oldalt tobr.open ("https://pubmatic.com/04_betasignin.jsp") #Mivel ismerem az űrlap nevét, egyszerűen kiválaszthatom az űrlapot a namebr.select_form név alapján ("login")#Az űrlap elemeinek nevét használva beírom az űrlap elemeinek nevét br ['email'] = "[email protected]" br ['password'] = "Asquid22"#br.submit () elküldi az űrlapot, és lehúzza a kapott oldalt, új böngészőpéldányt hoz létre#az alábbi válasz tartalmazza a kapott pageresponse = br.submit ()#Ezzel kinyomtatja a kapott weboldal törzsét#print response.read ()
4. lépés: Küldje el a megfelelő jeleket
A Mechanize egyszerű funkcióval fejléceket adhat hozzá a POST fejlécekhez, ezáltal lehetővé válik számunkra, hogy ugyanazon a böngészőn jelenjünk meg, amelyet először használt az oldal eléréséhez. Nyissa meg a fájlt a Firebug használatával talált fejlécekkel, és szerkessze ezt a szöveges fájlt. Cserélje ki az idézőjelekben szereplő összes elemet a fejléc-lista megfelelő elemére: 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 =" hu-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-életben" 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 = (közvetlen) | utmcsr = (közvetlen) | utmcmd = (nincs); JSESSIONID = 60F194BE2 no-cache "CACHE_CONTROL =" no-cache "Ez létrehoz egy változóhalmazt, amellyel hozzáfűzheti a fejléchez ezt a kódot: 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)] Most, amikor az oldalmegnyitás funkciót hívjuk, a fejlécek a szerverre is el lesznek küldve. br.open ("https://pubmatic.com/04_betasignin.jsp")
5. lépés: Gépesített cookie -k
Ez a lépés azért van, mert a gépesítés automatizálja a cookie -k kezelését, de fontos tudni, hogy mi történik:
Az űrlap elküldésekor a megfelelő fejlécekkel rendelkezik, mintha a javascript funkcióval küldte volna be. A szerver ezután hitelesíti ezeket az információkat, és létrehoz egy munkamenet -azonosítót, és elmenti egy cookie -ba, ha a felhasználónév és a jelszó helyes. A jó hír az, hogy a Mechanize automatikusan megeszi és visszafejti a cookie -kat, így nem kell aggódnia a cookie küldése és fogadása miatt. Tehát ha létrehoz egy működő munkamenet -azonosítót, akkor beléphet a webhely csak tagoknak szóló részébe.
6. lépés: Kulcs a szívhez
Most, hogy megszereztük a munkamenet -azonosítót, és a Mechanize a sütikbe mentette, követhetjük a javascriptet, hogy lássuk, hová kell mennünk. Az "if (session_id! = Null) {// bejelentkezés sikeres" belenézve megnézheti, hogy merre kell továbbmenni. Az ablak áthelyezési kódját nézve: "if (adurlbase.search (/pubmatic.com/)! = -1) {window.location =" https://pubmatic.com/05_homeloggedin.jsp " +"? V = " + Math.random ()*10000; " látjuk, hogy el kell mennünk egy olyan webhelyre, amely a https://pubmatic.com/05_homeloggedin.jsp?v=valami véletlen szám alatt található. Tehát hozzunk létre egy hamis véletlenszerű számot a belépéshez, és hozzunk létre egy új böngészőpéldányt a frissen megnyitott oldal olvasásához: response2 = br.open ("https://pubmatic.com/05_homeloggedin.jsp?v=2703") És ennek legyen. A kódja kész, a megfelelő fejlécek és a cookie -kezelő gépesítése révén most elérhetjük a pubmatic belső elemeit. Nyissa meg a terminált, töltse be az alábbi python csomagot, és jelentkezzen be. Ehhez írja be a python2.5, majd a.py fájl elérési útját.
Ajánlott:
Az akadályok észlelése aszinkron módon ultrahanggal: 4 lépés
Az akadályok észlelése aszinkron módon ultrahanggal: A szórakozás kedvéért robotot építek, amelyet autonóm módon szeretnék mozgatni egy házban. Ez hosszú munka, és lépésről lépésre csinálom. Ez az oktatható fókusz az akadályok észlelésére szolgál az Arduino Mega segítségével. A HC-SR04 és a HY-SRF05 ultrahangos érzékelők olcsók és
DIY Windows bejelentkezési kulcs: 5 lépés
DIY Windows bejelentkezési kulcs: Eleged van abból, hogy az ablakok bejelentkezéskor kérik a jelszavadat? Nos, beállíthatsz egy PIN -kódot; könnyű megjegyezni, ugye? Azonban egy tű nem olyan biztonságos, különösen, ha nyilvánosan használja a laptopját, könnyebb elkapni, mint a
Egyszerű kötegelt fájl bejelentkezési rendszer betöltősávval: 5 lépés
Egyszerű kötegelt fájl bejelentkezési rendszer betöltősávval: Itt megosztjuk a bejelentkezési rendszer kötegelt fájlját a betöltősávval. Megmutatjuk a kódot és a használatát is. További kötegelt fájlkódokért is felkeresheti blogunkat. FFLocker 1.0: http://errorcode401.blogspot.in/2013/06/FFlocker-1.0.html Rar
EAL - bejelentkezési rendszer: 4 lépés
EAL - Bejelentkezési rendszer: IntroVi har valgt og lave et adgangskontrol system, som via Arduino kanstyres med brikker og kort. Her bestemmes det hvem der skal have tilladelse til at komme igennem en specificik d ø r. Dette lagers az adatbázisban, som vi har oprettet. Én databa
Kötegelt bejelentkezési képernyő: 5 lépés
Kötegelt bejelentkezési képernyő: Itt egy kis program, amely lehetővé teszi, hogy regisztráljon és jelentkezzen be kötegelten, remélve, hogy élvezni fogja