Përmbajtje:
- Hapi 1: Mblidhni materiale
- Hapi 2: Gjeni titujt e nevojshëm për të krijuar një sesion
- Hapi 3: Përgatitni Kodin
- Hapi 4: Dërgoni sinjalet e duhura
- Hapi 5: Cookies të mekanizuara
- Hapi 6: Çelësi për zemrën
Video: Spidering një faqe interneti Ajax me një formë hyrjeje asinkrone: 6 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:30
Problemi: Mjetet spidering nuk lejojnë vërtetimin e hyrjes në AJAX.
Ky udhëzues do t'ju tregojë se si të identifikoheni përmes një forme AJAX duke përdorur Python dhe një modul të quajtur Mechanize. Merimangat janë programe të automatizimit të uebit që po bëhen mënyra gjithnjë e më popullore për njerëzit për të mbledhur të dhëna në internet. Ata zvarriten rreth uebit duke mbledhur materiale të çmuara për të ushqyer kompanitë më të fuqishme të uebit përreth. Të tjerët zvarriten dhe mbledhin grupe të veçanta të të dhënave për të përmirësuar vendimmarrjen, ose për të nxjerrë përfundimin se çfarë është aktualisht "brenda", ose për të gjetur rrugët më të lira të udhëtimit. Merimangat (zvarritësit e uebit, ueb -faqet ose kruajtësit e ekranit) janë të shkëlqyera për ta kthyer HTML -in në një pamje të të dhënave inteligjente, por ne kemi një problem kur bëhet fjalë për uebfaqe të aktivizuara nga AJAX që kanë seanca të aktivizuara me JavaScript dhe cookie që nuk janë të lundrueshme me ato normale. grup mjetesh spidering. Në këtë udhëzues do të kemi qasje në faqen tonë të anëtarëve në pubmatic.com. Këto hapa do t'ju tregojnë një metodë për të ndjekur, por faqja juaj do të jetë e ndryshme. Argëtohu!
Hapi 1: Mblidhni materiale
Ju do të duhet të filloni të plotësoni burimet tuaja të programimit. Ju do të keni nevojë për programet e mëposhtme. Përdorni udhëzuesit e tyre për t’ju ndihmuar të instaloni këto… Instaloni Firebug tshtë një shtesë Firefox Instaloni Python Shko te: python.org Shko tek: python.orgInstalo Modulin e Mekanizuar Merr MechanizeGet MechanizeMjete të tjera të dobishme Spidering: BeautifulSoup
Hapi 2: Gjeni titujt e nevojshëm për të krijuar një sesion
Një merimangë e krijuar mirë do të hyjë në një faqe në internet sikur të ishte një shfletues që kontrollohej nga një qenie njerëzore duke mbajtur të dhëna për origjinën e saj të vërtetë të fshehur. Një pjesë e ndërveprimit midis shfletuesve dhe serverëve ndodh përmes kërkesave GET dhe POST që mund t'i gjeni në titujt (ky informacion rrallë shfaqet në një shfletues, por është shumë i rëndësishëm). Ju mund t'i shihni këto informacione duke shtypur Ctrl I (në firefox) për të hapur dritaren e Informacionit të Faqes. Për tu maskuar si një shfletues i sjellshëm i butë, duhet të identifikoheni duke përdorur të njëjtat kredenciale. Nëse jeni përpjekur të hyni në pubmatic me JavaScript të çaktivizuar në shfletuesin tuaj, nuk do të arrini shumë larg pasi përcjelljet bëhen përmes javascript. Pra, duke pasur parasysh që shumica e shfletuesve merimangë nuk kanë interpretues javascript, do të na duhet të identifikohemi përmes një rruge alternative. Le të fillojmë duke marrë informacionin e kokës të dërguar nga shfletuesi kur klikoni paraqitjen. Nëse kjo do të ishte një hyrje e zakonshme e shfletuesit, do të përdorni Mechanize për të plotësuar formularin dhe klikoni paraqit. Format normale të hyrjes përfshihen në një etiketë… dhe Mechanize do të jetë në gjendje ta paraqesë këtë dhe të anketojë faqen tjetër pa telashe. Meqenëse nuk kemi një etiketë të formularit të kompletuar, funksioni i dorëzimit po trajtohet nga javascript. Le të kontrollojmë funksionin submitForm të pubmatic. Për ta bërë këtë, së pari hapni uebfaqen në firefox dhe ndizni firebug duke klikuar fireflyn në këndin e poshtëm të djathtë. Pastaj klikoni në skedën e skriptit, kopjoni të gjithë kodin që shfaqet dhe ngjiteni në programin tuaj të preferuar të redaktimit të tekstit. Pastaj mund të fshini të gjithë kodin përveç funksionit submitForm. Fillon me funksionin "submitForm (theform) {" dhe gjithçka në mes të këtij dhe funksioneve që mbyllen kllapa kaçurrelë "}". Duke analizuar këtë funksion në mënyrë shumë primitive, ne vërejmë se një vërtetim ndodh duke sjellë përsëri një ndryshore të quajtur xmldoc që analizohet si xml. Ky është një tipar kryesor i AJAX, ai ka anketuar serverin dhe ka sjellë përsëri një dokument XML që përmban një pemë informacioni. Nyja session_id përmban session_id nëse vërtetimi ishte i suksesshëm, ju mund ta tregoni këtë duke parë këtë pjesë të kodit: "nëse (session_id! = Null) {// identifikimi i suksesshëm". Tani ne duam të parandalojmë që kjo pjesë e javascript të na çojë kudo, në mënyrë që të shohim se çfarë po postohet në server gjatë vërtetimit. Për ta bërë këtë, ne komentojmë çdo ridrejtim të dritares që duket kështu: "window.location =…". Për ta komentuar këtë, shtoni pjerrësi të dyfishta para tyre si kështu: "//window.location…" kjo parandalon ekzekutimin e kodit. Ju mund të shkarkoni skedarin Javascript më poshtë i cili i ka bërë tashmë këto redaktime. Kopjoni dhe ngjisni këtë pjesë të redaktuar të javascript në dritaret e tastierës në anën e djathtë dhe klikoni Run. Kjo tejkalon funksionin javascript tashmë në faqe me versionin tonë të ri. Tani kur plotësoni kredencialet tuaja dhe klikoni paraqitni, duhet të shihni informacionin e POST dhe GET të mbushur me tastierën, por nuk do të shkoni askund. Informacioni POST është informacioni i shkrepur në server nga funksionet AJAX, ju dëshironi të jeni sa më shumë si kjo të jetë e mundur, kopjoni dhe ngjisni atë informacion në një fletore.
Hapi 3: Përgatitni Kodin
Para se të shtojmë titujt e rinj që kemi gjetur, le të krijojmë një model të modeluar të mekanizoj kodin e hyrjes në python. Ne po e bëjmë këtë për dy arsye, së pari kështu që ne kemi një komponent që punon për të shtuar gjëra të reja dhe së dyti kështu që ju të shihni se si normalisht do të identifikoheshit në një faqe në internet jo AJAX-y. Hapni një fletore ose ekuivalente, dhe kopjoni dhe ngjisni në vijim. Kur të keni mbaruar ruajeni si youfilename.py diku që mund të gjeni.#!/Usr/bin/python#-*-kodimi: utf-8-*-#Filloni me importet e modulit tuaj: nga mekanizimi i importimit Shfletuesi#Krijo tuajin shembull i shfletuesit përmes thirrjes së funksionit Browser (); br = Browser ()#Vendosni shfletuesin në mënyrë që të injorojë merimangat.txt kërkesat#Bëni këtë me kujdes, nëse faqja e internetit nuk i pëlqen merimangat, ata mund të shqetësohen kur ju gjejnë atje.set_handle_robots (E gabuar) #Hap faqen që dëshironi të identifikoheni tobr.open ("https://pubmatic.com/04_betasignin.jsp") #Sepse e di emrin e formularit, thjesht mund të përzgjedh formularin sipas emritbr.select_form ("hyrja")#Duke përdorur emrat e elementeve të formularit unë fus emrat e elementeve të formularit br ['email'] = "[email protected]" br ['password'] = "Asquid22"#br.submit () dërgon formularin dhe tërheq faqen që rezulton, ju krijoni një shembull të ri të shfletuesit#përgjigja më poshtë përmban rezultatin e përgjigjes = br.submit ()#Kjo do të printojë trupin e faqes së internetit të marrë#përgjigje të shtypura.lexo ()
Hapi 4: Dërgoni sinjalet e duhura
Mechanize ka një funksion të lehtë për të shtuar titujt në titujt POST, kjo do të na mundësojë të shfaqemi në të njëjtin shfletues që keni përdorur për të hyrë në faqe herën e parë. Hapni skedarin me titujt që keni gjetur duke përdorur Firebug dhe modifikoni këtë skedar teksti që të përputhet. Zëvendësoni gjithçka në thonjëza me artikullin e duhur nga lista e titujve: 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 =" en-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 " LIDHJA = "mbajtur-gjallë" CONTENT_TYPE = "application / x-www-formë-urlencoded" Referer = "https://pubmatic.com/04_betasignin.jsp"CONTENT_LENGTH =" 60 "cookie =" utma = 103266945.1970108054.1210113004.1212104087.1212791201.20; KADUSERCOOKIE = EA2C3249-E822-456E-847A-1FF0D4085A85; utmz = 103266945.1210113004.1.1.utmccn = (direkt) | utmcsr = (e drejtpërdrejtë) | utmcmd = (asnjë); JSESSIONID = 60F6B jo-cache "CACHE_CONTROL =" jo-cache "Kjo krijon një grup variablash që më pas mund t'i përdorni për t'iu bashkuar titullit duke futur këtë kod: 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 = [(" Lidhja ", LIDHJA)] br.add_header = [(" Lloji i përmbajtjes ", CONTENT_TYPE)] br.add_header = [(" Referuesi ", REFERUES)] br.add_header = [("Përmbajtja-Gjatësia", CONTENT_LENGTH)] br.add_headers = [("Cookie", COOKIE)] br.add_headers = [("Pragma", PRAGMA)] br.add_headers = [("Cache-Control", CACHE_CONTROL)] Tani kur thërrasim funksionin e hapjes së faqes, titujt do të dërgohen edhe në server. br.open ("https://pubmatic.com/04_betasignin.jsp")
Hapi 5: Cookies të mekanizuara
Ky hap është sepse mekanizimi automatizon trajtimin e cookie -t, por është e rëndësishme të dini se çfarë po ndodh:
Kur dorëzohet formulari ju keni titujt e duhur sikur të jeni paraqitur duke përdorur funksionin javascript. Serveri më pas vërteton këtë informacion dhe gjeneron një ID sesioni dhe e ruan atë në një cookie nëse emri i përdoruesit dhe fjalëkalimi janë të sakta. Lajmi i mirë është që Mekanizimi ha dhe regurgitates cookie automatikisht kështu që ju nuk keni nevojë të shqetësoheni për dërgimin dhe marrjen e cookie -t. Pra, pasi të krijoni një ID sesioni që funksionon, atëherë mund të futni pjesën vetëm për anëtarët e faqes në internet.
Hapi 6: Çelësi për zemrën
Tani që kemi marrë një ID sesioni dhe Mechanize e ruajti atë në cookie -t e saj, ne mund të ndjekim javascript për të parë se ku duhet të shkojmë. Duke parë brenda "if (session_id! = Null) {// identifikimi i suksesshëm" për të parë se ku të shkoni në sukses. Duke parë kodin e zhvendosjes së dritares: "if (adurlbase.search (/pubmatic.com/)! = -1) {window.location =" https://pubmatic.com/05_homeloggedin.jsp " +"? V = " + Math.andom ()*10000; " ne shohim që duhet të shkojmë në një faqe në internet të vendosur në https://pubmatic.com/05_homeloggedin.jsp?v= disa numra të rastit. Pra, le të krijojmë vetëm një numër të rastit të rremë për të hyrë dhe të krijojmë një shembull të ri të shfletuesit për të lexuar faqen e sapo hapur: respond2 = br.open ("https://pubmatic.com/05_homeloggedin.jsp?v=2703") Dhe kjo duhet qofte ajo Kodi juaj tani është i plotë, duke përdorur titujt e duhur dhe mekanizimin e mbajtësit të cookie -t tani mund të hyjmë në brendësinë e pubmatic. Hapni terminalin, ngarkoni paketën python më poshtë dhe identifikohuni larg. Për ta bërë këtë, shkruani python2.5 dhe pastaj rrugën e skedarit në skedarin.py.
Recommended:
Zbuloni Pengesat Asinkrone Me Ultratinguj: 4 Hapa
Zbuloni Pengesat Asinkrone Me Ultratinguj: Unë po ndërtoj për argëtim një robot që dua të lëviz në mënyrë autonome brenda një shtëpie. Isshtë një punë e gjatë dhe po e bëj hap pas hapi. Ky fokus i udhëzueshëm në zbulimin e pengesave me Arduino Mega. Sensorët tejzanor HC-SR04 vs HY-SRF05 janë të lirë
Si të krijoni një faqe në internet (një udhëzues hap pas hapi): 4 hapa
Si të krijoni një faqe në internet (një udhëzues hap pas hapi): Në këtë udhëzues, unë do t'ju tregoj se si shumica e zhvilluesve të uebit ndërtojnë faqet e tyre dhe si mund të shmangni ndërtuesit e shtrenjtë të faqeve të internetit që shpesh janë shumë të kufizuara për një sit më të madh. Gjithashtu t'ju ndihmojë të shmangni disa gabime që kam bërë kur fillova
Krijoni një pikë hyrjeje WiFi dhe siguroni një server në internet në hapat NodeMCU V3: 4
Krijoni një pikë hyrjeje WiFi dhe siguroni një server në internet në NodeMCU V3: në artikullin e mëparshëm kam diskutuar tashmë se si të përdorni NodeMCU ESP8266. Në artikull unë shpjegoj se si të shtoni NodeMCU ESP8266 në Arduini IDE. Ka disa mënyra për të komunikuar përmes internetit duke përdorur NodeMCU ESP8266. Marrja e NodeMCU si një
Vendosja e një kopjeje në butonin e kujtesës në një faqe në internet: 5 hapa (me fotografi)
Vendosja e një kopje në butonin e kujtesës në një faqe në internet: Kjo mund të tingëllojë e thjeshtë, dhe mund të dukem budalla për ta vënë atë në Instructables, por në realitet, nuk është aq e lehtë. Ekziston CSS, Jquery, HTML, disa javascript të zbukuruar, dhe, mirë, e dini
Si të ndërtoni një faqe në internet në një Raspberry Pi, Me Node.js, Express dhe MongoDB Pjesa 1: 6 Hapat
Si të ndërtoni një faqe në internet në një Raspberry Pi, Me Node.js, Express dhe MongoDB … Pjesa 1: Mirë se vini në PJESA 1 e mësimit tim të aplikacionit në internet node.js. Pjesa 1 do të kalojë përmes softuerit të nevojshëm të përdorur për zhvillimin e aplikacionit node.js, si të përdorni përcjelljen e portit, si të ndërtoni një aplikacion duke përdorur Express dhe si të ekzekutoni aplikacionin tuaj. Pjesa e dytë e kësaj