Taula de continguts:
- Pas 1: reuniu materials
- Pas 2: cerqueu les capçaleres necessàries per crear una sessió
- Pas 3: prepareu el codi
- Pas 4: envieu els senyals correctes
- Pas 5: Cookies mecanitzades
- Pas 6: clau del cor
Vídeo: Arranjament d'un lloc web Ajax amb un formulari d'inici de sessió asíncron: 6 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:16
El problema: les eines Spidering no permeten l’autenticació d’inici de sessió AJAX.
Aquesta instrucció us mostrarà com iniciar la sessió mitjançant un formulari AJAX mitjançant Python i un mòdul anomenat Mechanize. Les aranyes són programes d’automatització de webs que cada vegada són més populars per a la recopilació de dades en línia. S'arrosseguen per la xarxa reunint materials preciosos per alimentar les empreses web més poderoses de tot el món. Altres s’arrosseguen i recopilen conjunts específics de dades per millorar la presa de decisions o dedueixen el que hi ha actualment o troben les rutes de viatge més barates. Les aranyes (rastrejadors web, robots web o rascadors de pantalla) són ideals per convertir HTML goop en una aparença de dades intel·ligents, però tenim un problema quan es tracta de pàgines web activades amb AJAX que tenen sessions habilitades per a JavaScript i cookies que no es poden navegar amb el normal conjunt d'eines d'aranya. En aquesta instrucció accedirem a la nostra pròpia pàgina de membre a pubmatic.com. Aquests passos us mostraran un mètode a seguir, però la vostra pàgina serà diferent. Diverteix-te!
Pas 1: reuniu materials
Haureu de començar a complementar els vostres recursos de programació. Necessitareu els programes següents. Utilitzeu les seves guies per ajudar-vos a instal·lar-los … Instal·leu Firebug És un complement de Firefox Instal·leu Python Aneu a: python.org Aneu a: python.org Instal·leu el mòdul Mecanitzeu Obteniu Mecanitzeu Obteniu Mecanitzat Altres eines útils de Spidering: BeautifulSoup
Pas 2: cerqueu les capçaleres necessàries per crear una sessió
Una aranya ben elaborada accedirà a una pàgina web com si es tractés d’un navegador controlat per un ésser humà que manté amagades les pistes sobre el seu veritable origen. Part de la interacció entre navegadors i servidors es produeix mitjançant sol·licituds GET i POST que podeu trobar a les capçaleres (aquesta informació poques vegades es mostra en un navegador, però és molt important). Podeu veure aquesta informació prement Ctrl I (a Firefox) per obrir la finestra d'informació de la pàgina. Per disfressar-vos d’un navegador de manera moderada, us heu d’identificar amb les mateixes credencials. Si proveu d’iniciar sessió a pubmatic amb el javascript desactivat al vostre navegador, no arribareu molt lluny, ja que les redireccions es fan mitjançant javascript. Per tant, tenint en compte que la majoria dels navegadors spider no tenen intèrprets javascript, haurem d’obtenir l’inici de sessió mitjançant una ruta alternativa. Comencem per obtenir la informació de capçalera que s’envia des del navegador quan feu clic a Envia. Si es tractés d’un inici de sessió ordinari del navegador, utilitzaríeu Mechanize per emplenar el formulari i fer clic a Envia. Els formularis d’inici de sessió normals estan encapsulats dins d’una etiqueta … i Mechanize podrà enviar-ho i examinar la pàgina següent sense problemes. Com que no tenim una etiqueta de formulari completada, javascript gestiona la funció d'enviament. Comprovem la funció submitForm de pubmatic. Per fer-ho, primer obriu la pàgina web a firefox i activeu firebug fent clic al firefly a l'extrem inferior dret. A continuació, feu clic a la pestanya de seqüència d'ordres, copieu tot el codi que apareix i enganxeu-lo al vostre programari d'edició de text preferit. A continuació, podeu suprimir tot el codi, excepte la funció submitForm. Comença amb la funció "submitForm (theform) {" i tot el que hi ha entre aquesta i les funcions que tanquen el parèntesi arrissat "}". En analitzar aquesta funció molt primitivament, ens adonem que passa una certa autenticació que torna una variable anomenada xmldoc que s'està analitzant com a xml. Aquesta és una característica clau d'AJAX: ha enquestat el servidor i ha recuperat algun document XML que conté un arbre d'informació. El node session_id conté l’identificador de sessió si l’autenticació s’ha realitzat correctament. Podeu saber-ho mirant aquest bit de codi: "if (session_id! = Null) {// inici de sessió correcte". Ara volem evitar que aquest tros de javascript ens porti a qualsevol lloc per poder veure què es publica al servidor durant l'autenticació. Per fer-ho comentem qualsevol redirecció de finestra que tingui aquest aspecte: "window.location = …". Per comentar-ho, afegiu-hi dues barres incloses: "//window.location…" això impedeix l'execució del codi. Podeu descarregar el fitxer Javascript que hi ha a continuació i que ja té aquestes modificacions. Copieu i enganxeu aquest bit de javascript editat a la finestra dreta de la consola i feu clic a Executa. Això anul·la la funció javascript que ja hi ha a la pàgina amb la nostra nova versió. Ara, quan empleneu les vostres credencials i feu clic a Envia, hauríeu de veure que la informació de capçalera POST i GET omple la consola, però no anireu a cap lloc. com sigui possible, copieu i enganxeu aquesta informació al bloc de notes.
Pas 3: prepareu el codi
Abans d'afegir les noves capçaleres que hem trobat, creem un model de codi Python d'inici de sessió Mecanitzat. Ho fem per dos motius: primer, per tant, tenim un component que funciona per afegir coses noves i, segon, per veure com normalment inicieu la sessió a una pàgina web que no sigui AJAX-y. Obriu el bloc de notes o equivalent i copieu i enganxeu el seguint. Quan hàgiu acabat, deseu-lo com a fitxernom.py en algun lloc on pugueu trobar. instància del navegador mitjançant la trucada a la funció Browser (); br = Browser () # Configureu el navegador perquè ignori les sol·licituds spiders.txt # Feu-ho amb cura, si a la pàgina web no li agraden les aranyes, pot ser que estiguin molestos en trobar-vos allà..set_handle_robots (fals) # Obre la pàgina a la qual voleu iniciar sessió tobr.open ("https://pubmatic.com/04_betasignin.jsp") #Perquè conec el nom del formulari, simplement puc seleccionar el formulari amb el nombr.select_form ("login") # Usant els noms dels elements del formulari introdueixo els noms dels elements del formularibr ['email'] = "[email protected]" br ['password'] = "Asquid22" # br.submit () envia el formulari i treu la pàgina resultant; creeu una nova instància del navegador.
Pas 4: envieu els senyals correctes
Mechanize té una funció senzilla per afegir capçaleres a les capçaleres POST, això ens permetrà aparèixer al mateix navegador que vau utilitzar per accedir a la pàgina la primera vegada. Obriu el fitxer amb les capçaleres que heu trobat amb Firebug i editeu aquest fitxer de text perquè coincideixi. Substituïu tot el que aparegui entre les cometes per l'element adequat de la llista de capçaleres: 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 =" ca-us, ca; 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-alive" CONTENT_TYPE = "application / x-www-form-urlencoded" REFERER = "https://pubmatic.com/04_betasignin.jsp"CONTENT_LENGTH =" 60 "COOKIE =" utma = 103266945.1970108054.1210113004.121210120871212; KADUSERCOOKIE = EA2C3249-E822-456E-847A-1FF0D4085A85; utmz = 103266945.1210113004.1.1.utmccn = (directe) | utmcsr = (directe) | utmcmd = (cap); JSESSIONID = 60F194BE2C3A18 no-cache "CACHE_CONTROL =" no-cache "Això crea un conjunt de variables que podeu utilitzar per afegir-nos a la capçalera ing aquest codi: br.add_header = [("Host", HOST)] br.add_headers = [("User-agent", USER_AGENT)] br.add_headers = [("Acceptar", ACCEPTAR)] br.add_header = [("Accept-Language", ACCEPT_LANGUAGE)] br.add_headers = [("Accept-Coding", 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 = [(" Referent ", REFERER)] br.add_header = [("Longitud del contingut", CONTENT_LENGTH)] br.add_headers = [("Cookie", COOKIE)] br.add_headers = [("Pragma", PRAGMA)] br.add_headers = [("Control de memòria cau", CACHE_CONTROL)] Ara, quan anomenem la funció d'obertura de pàgina, les capçaleres també s'enviaran al servidor. br.open ("https://pubmatic.com/04_betasignin.jsp")
Pas 5: Cookies mecanitzades
Aquest pas es deu a que mecanitzar automatitza la gestió de cookies, però és important saber què passa:
Quan s’envia el formulari, teniu les capçaleres adequades com si les envieu amb la funció javascript. Aleshores, el servidor autentica aquesta informació i genera un identificador de sessió i la desa en una galeta si el nom d’usuari i la contrasenya són correctes. La bona notícia és que Mechanize menja i regurgita automàticament les galetes, de manera que no cal que us preocupeu per enviar i rebre les galetes. Per tant, un cop creeu un identificador de sessió que funcioni, podeu entrar a la secció només per a membres del lloc web.
Pas 6: clau del cor
Ara que hem adquirit un identificador de sessió i que Mechanize l’ha desat a les seves cookies, podem seguir el javascript per veure on hem d’anar. Mirant a l'interior de "if (session_id! = Null) {// inici de sessió correcte" per veure on anar amb èxit. Mirant el codi de reubicació de la finestra: "if (adurlbase.search (/pubmatic.com/)! = -1) {window.location =" https://pubmatic.com/05_homeloggedin.jsp "+"? V = "+ Math.random () * 10000; " veiem que hem d’anar a un lloc web situat a https://pubmatic.com/05_homeloggedin.jsp?v=algun número aleatori. Així doncs, només hem de crear un número aleatori fals per introduir i crear una nova instància del navegador per llegir la pàgina acabada d’obrir: response2 = br.open ("https://pubmatic.com/05_homeloggedin.jsp?v=2703") I això hauria de ser sigui. El vostre codi ja està complet, fent servir les capçaleres adequades i mecanitzant el gestor de cookies, ara podem accedir a les entranyes de pubmatic. Obriu el terminal, carregueu el paquet python que hi ha a continuació i inicieu la sessió. Per fer-ho, escriviu python2.5 i, a continuació, la ruta del fitxer al fitxer.py.
Recomanat:
Clau d'inici de sessió de bricolatge de Windows: 5 passos
Clau d'inici de sessió de bricolatge de Windows: esteu fart de que Windows us demani la contrasenya cada vegada que inicieu la sessió? Bé, podeu configurar un pin; és fàcil de recordar, oi? No obstant això, un pin no és tan segur, sobretot si utilitzeu el vostre ordinador portàtil en públic, és més fàcil d’atrapar que el vostre
Com fer un inici de sessió senzill per lots: 3 passos
Com fer un inici de sessió senzill per lots: el primer que heu de fer és crear el fitxer. Podeu anomenar-lo com vulgueu, però assegureu-vos d’afegir el. BAT o, en cas contrari, NO FUNCIONARÀ
Sistema d'inici de sessió senzill amb fitxers de lots amb barra de càrrega: 5 passos
Sistema d’inici de sessió senzill amb fitxers de lots amb barra de càrrega: aquí compartim fitxers de lots per al sistema d’inici de sessió amb barra de càrrega. Us mostrarem codi i també us mostrarem com utilitzar-lo. També podeu visitar el nostre bloc per obtenir més codis de fitxers per lots. FFLocker 1.0: http://errorcode401.blogspot.in/2013/06/FFlocker-1.0.html Rar
EAL - Sistema d'inici de sessió: 4 passos
EAL - Login System: IntroVi har valgt og lave and adgangskontrol system, som via Arduino kanstyres with brikker og kort. Her bestemmes det hvem der skal have tilladelse til at komme igennem en specifik d ø r. Dette lagers i en database, som vi har oprettet. I databa
Com restaurar carpetes obertes quan torneu a iniciar la sessió després de tancar la sessió: 5 passos
Com restaurar carpetes obertes quan torneu a iniciar la sessió després de tancar la sessió: bé, aquí teniu la situació, esteu fent servir l’ordinador amb moltes carpetes obertes … Llavors, la vostra mare va tornar a casa abans del previst. Sabeu perfectament que si us atrapa amb l'ordinador, mentre que hauríeu d'estar al llit perquè