Съдържание:
- Стъпка 1: Съберете материали
- Стъпка 2: Намерете заглавките, необходими за създаване на сесия
- Стъпка 3: Подгответе кода
- Стъпка 4: Изпратете правилните сигнали
- Стъпка 5: Механизирани бисквитки
- Стъпка 6: Ключ към сърцето
Видео: Премахване на уебсайт на Ajax с асинхронна форма за вход: 6 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:55
Проблемът: Инструментите за паяк не позволяват удостоверяване при влизане в AJAX.
Тази инструкция ще ви покаже как да влезете чрез AJAX формуляр, използвайки Python и модул, наречен Mechanize. Паяците са програми за уеб автоматизация, които стават все по -популярен начин хората да събират данни онлайн. Те пълзят из мрежата, събирайки ценни материали, за да подхранват най -мощните уеб компании наоколо. Други пълзят наоколо и събират конкретни набори от данни, за да подобрят вземането на решения, или да направят извод какво е „в“в момента, или да намерят най -евтините маршрути за пътуване. Паяците (уеб роулери, уебботове или стъргалки на екрана) са чудесни за превръщането на HTML goop в някакво подобие на интелигентни данни, но имаме проблем, когато става въпрос за уеб страници с AJAX, които имат JavaScript и сесии с бисквитки, които не могат да се навигират с нормалните набор от инструменти за паяци. В тази инструкция ще имаме достъп до нашата собствена страница на pubmatic.com. Тези стъпки ще ви покажат метод, който да следвате, но страницата ви ще бъде различна. Забавлявай се!
Стъпка 1: Съберете материали
Ще трябва да започнете да допълвате вашите програмни ресурси. Ще ви трябват следните програми. Използвайте техните ръководства, за да ви помогнат да инсталирате тези … Инсталиране на FirebugТова е добавка за Firefox Инсталиране на Python Отидете на: python.org Отидете на: python.org Инсталирайте модула за механизацияВземете MechanizeВземете MechanizeДруги полезни инструменти за паяк: BeautifulSoup
Стъпка 2: Намерете заглавките, необходими за създаване на сесия
Добре изработеният паяк ще има достъп до уеб страница, сякаш това е браузър, контролиран от човешко същество, запазвайки улики за скрития истински произход. Част от взаимодействието между браузъри и сървъри се осъществява чрез GET и POST заявки, които можете да намерите в заглавките (тази информация рядко се показва в браузъра, но е много важна). Можете да видите част от тази информация, като натиснете Ctrl I (във firefox), за да отворите прозореца Информация за страницата. За да се маскирате като мек маниерен браузър, трябва да се идентифицирате, като използвате същите идентификационни данни. Ако се опитате да влезете в pubmatic с деактивиран JavaScript в браузъра си, няма да стигнете много далеч, тъй като пренасочванията се извършват чрез javascript. Така че, като се има предвид, че повечето браузъри -паяци нямат интерпретатори на javascript, ще трябва да влезем чрез влизане чрез алтернативен маршрут. Нека започнем с получаването на информацията за заглавката, изпратена от браузъра, когато щракнете върху изпрати. Ако това беше обикновен вход в браузъра, бихте използвали Mechanize, за да попълните формуляра и щракнете върху „Изпращане“. Нормалните формуляри за вход са капсулирани в… маркер и Mechanize би могъл да изпрати това и да огледа следващата страница без проблеми. Тъй като нямаме завършен маркер за формуляр, функцията за изпращане се обработва от javascript. Нека проверим функцията submitForm на pubmatic. За да направите това, първо отворете уеб страницата във firefox и включете firebug, като щракнете върху светулката в долния десен ъгъл. След това щракнете върху раздела скрипт, копирайте целия код, който се показва, и го поставете в любимия си софтуер за редактиране на текст. След това можете да изтриете целия код, с изключение на функцията submitForm. Започва с функция "submitForm (theform) {" и всичко между това и функциите, затварящи фигурна скоба "}". При анализирането на тази функция много примитивно забелязваме, че се случва известно удостоверяване, което връща променлива, наречена xmldoc, която се анализира като xml. Това е ключова характеристика на AJAX, че е анкетирала сървъра и е върнала XML документ, който съдържа дърво с информация. Възелът session_id съдържа идентификатор session_id, ако удостоверяването е било успешно, можете да разберете това, като погледнете този бит код: "if (session_id! = Null) {// влизането е успешно". Сега искаме да предотвратим този бит от javascript да ни отведе навсякъде, за да можем да видим какво се публикува на сървъра по време на удостоверяването. За да направим това, ние коментираме всички пренасочвания на прозорци, които изглеждат така: "window.location = …". За да коментирате това, добавете двойни наклонени черти преди тях така: "//window.location…" това предотвратява изпълнението на кода. Можете да изтеглите файла Javascript, под който вече са направени тези редакции. Копирайте и поставете този редактиран бит JavaScript в дясната страна на прозорците на конзолата и щракнете върху изпълнение. Това отменя функцията javascript, която вече е на страницата с новата ни версия. Сега, когато попълните вашите идентификационни данни и щракнете върху изпращане, трябва да видите POST и GET информация за заглавието запълва конзолата, но няма да отидете никъде. POST информацията е информацията, изстреляна към сървъра чрез функциите AJAX, искате да бъдете толкова като това е възможно, копирайте и поставете тази информация в бележника.
Стъпка 3: Подгответе кода
Преди да добавим новите заглавки, които открихме, нека създадем шаблонен механизъм за въвеждане на python код за вход. Правим това по две причини, първо, така че имаме компонент, който работи за добавяне на нови неща и второ, така че да видите как обикновено бихте влезли в уеб страница, която не е AJAX-y. Отворете бележника или еквивалент и копирайте и поставете следване. Когато сте готови, запишете го като youfilename.py някъде, където можете да намерите. екземпляр на браузъра чрез извикване на функцията Browser (); br = Browser ()#Настройте браузъра така, че да игнорира заявките spiders.txt#Направете това внимателно, ако уеб страницата не харесва паяци, те може да са разстроени, за да ви намерят там.set_handle_robots (False) #Отворете страницата, на която искате да влезете, tobr.open ("https://pubmatic.com/04_betasignin.jsp") #Понеже знам името на формуляра, мога просто да избера формуляра с иметоbr.select_form ("вход")#Използвайки имената на елементите на формуляра въвеждам имената на елементите на формуляраbr ['email'] = "[email protected]" br ['password'] = "Asquid22"#br.submit () изпраща формуляра и издърпва получената страница, създавате нов екземпляр на браузъра#отговор по -долу съдържа получената страницаresponse = br.submit ()#Това ще отпечата тялото на получената уеб страница#print response.read ()
Стъпка 4: Изпратете правилните сигнали
Mechanize има лесна функция за добавяне на заглавки към заглавките POST, това ще ни позволи да се показваме в същия браузър, който сте използвали за достъп до страницата за първи път. Отворете файла със заглавки, които сте намерили с помощта на Firebug и редактирайте този текстов файл, за да съответства. Заменете всичко в кавичките с подходящия елемент от списъка на заглавките: 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 = "текст/xml, приложение/xml, приложение/xhtml+xml, текст/html; q = 0,9, текст/обикновен; q = 0,8, изображение/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 " CONNECTION = "поддържам жив" 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 = (директно) | utmcsr = (директно) | utmcmd = (няма); no-cache "CACHE_CONTROL =" no-cache "Това създава набор от променливи, които след това можете да използвате, за да ги добавите към заглавката us този код: br.add_header = [("Host", HOST)] br.add_headers = [("User-agent", USER_AGENT)] br.add_headers = [("Приемам", ACCEPT)] br.add_header = [("Приемане-език", ACCEPT_LANGUAGE)] br.add_headers = [("Приемане-кодиране", ACCEPT_ENCODING)] br.add_headers = [("Приемане-Charset", ACCEPT_CHARSET)] br.add_header = [("Keep-Alive ", KEEP_ALIVE)] br.add_headers = [(" Връзка ", CONNECTION)] br.add_header = [(" Тип съдържание ", CONTENT_TYPE)] br.add_header = [(" Препращач ", REFERER)] br.add_header = [("Content-Length", CONTENT_LENGTH)] br.add_headers = [("Cookie", COOKIE)] br.add_headers = [("Pragma", PRAGMA)] br.add_headers = [("Кеш-контрол", CACHE_CONTROL)] Сега, когато извикаме функцията за отваряне на страницата, заглавките ще бъдат изпратени и на сървъра. br.open ("https://pubmatic.com/04_betasignin.jsp")
Стъпка 5: Механизирани бисквитки
Тази стъпка е, защото механизирането автоматизира обработката на бисквитки, но е важно да знаете какво се случва:
Когато формулярът е изпратен, имате правилните заглавки, сякаш сте изпратили с помощта на функцията javascript. След това сървърът удостоверява тази информация и генерира идентификатор на сесия и го записва в бисквитка, ако потребителското име и паролата са правилни. Добрата новина е, че Mechanize автоматично изяжда и връща бисквитки, така че не е нужно да се притеснявате за изпращането и получаването на бисквитката. Така че след като създадете работещ идентификационен номер на сесия, можете да въведете секцията само за членовете на уебсайта.
Стъпка 6: Ключ към сърцето
Сега, след като сме придобили идентификационен номер на сесия и Mechanize го запазихме в своите бисквитки, можем да следваме javascript, за да видим къде трябва да отидем. Поглеждайки вътре в „if (session_id! = Null) {// влизането е успешно“, за да видите къде да отидете при успех. Гледайки кода за преместване на прозореца: "if (adurlbase.search (/pubmatic.com/)! = -1) {window.location =" https://pubmatic.com/05_homeloggedin.jsp " +"? V = " + Math.random ()*10000; " виждаме, че трябва да отидем на уебсайт, разположен на https://pubmatic.com/05_homeloggedin.jsp?v= някакво произволно число. Така че нека просто създадем фалшив случаен номер за въвеждане и създаване на нов екземпляр на браузъра, за да прочете току -що отворената страница: response2 = br.open ("https://pubmatic.com/05_homeloggedin.jsp?v=2703") И това трябва било то Вашият код вече е завършен, като използваме подходящите заглавки и механизиран манипулатор на бисквитки, вече можем да осъществим достъп до вътрешностите на pubmatic. Отворете терминала, заредете пакета python по -долу и влезте. За да направите това, въведете python2.5 и след това пътя на файла към.py файла.
Препоръчано:
Премахване на серво контролер: 5 стъпки (със снимки)
Премахнете серво контролера: Серво моторите са много забавни, когато искате лесно да свържете интерфейсен мотор с редуктор с микроконтролер. Понякога обаче искате хубав двигател с малък редуктор и не искате да се притеснявате от веригата за управление, за да го управлявате. В такива моменти е
Свободна форма - Реална схема на свободна форма!: 8 стъпки
Свободна форма | Реална верига със свободна форма !: LED верига с дистанционно управление, която може да се управлява свободно. Всичко в едно, приложимо „Направи си сам“преследвач на светлина с модели, контролирани от Arduino
Кристален усилвател за слушалки със свободна форма: 26 стъпки (със снимки)
Кристален CMoy усилвател за слушалки със свободна форма: Тази схема на усилвател за слушалки е различна от конвенционалните съвременни строителни техники, тъй като е с въздушно кабелно, P2P (от точка до точка) или окабеляване в свободна форма, точно както в добрите стари дни на клапана преди намесата на печатни платки и транзистор.R
Лесно премахване на SMT IC: 5 стъпки (със снимки)
Лесно премахване на SMT IC: Това е първият ми инструктаж, така че се надявам да не е гадно. Както може би сте забелязали, повечето електроника в наши дни са компоненти за повърхностно монтиране и може да бъде трудно да се работи с тях, ако нямате подгревател и станция за преработка на горещ въздух. Това може да направи
Crack Itunes Protected Music (премахване на DRM защита): 5 стъпки (със снимки)
Crack Itunes Protected Music (премахване на DRM защита): Музиката е била огромна част от обществото в миналото, но с технологиите е по -голяма от всякога! Най -бързият и лесен начин за получаване на музика в наши дни е чрез интернет („Интернет е комуникационен инструмент, използван по целия свят, където хората могат да дойдат заедно