Мазмуну:

Ajax веб -сайтын асинхрондук кирүү формасы менен өрмөк: 6 кадам (сүрөттөр менен)
Ajax веб -сайтын асинхрондук кирүү формасы менен өрмөк: 6 кадам (сүрөттөр менен)

Video: Ajax веб -сайтын асинхрондук кирүү формасы менен өрмөк: 6 кадам (сүрөттөр менен)

Video: Ajax веб -сайтын асинхрондук кирүү формасы менен өрмөк: 6 кадам (сүрөттөр менен)
Video: MAX6675 Температура термопары через WiFi с ESP8266 NodeMCU D1 Mini 2024, Ноябрь
Anonim
Ajax веб -сайтын асинхрондук кирүү формасы менен өрмөлөө
Ajax веб -сайтын асинхрондук кирүү формасы менен өрмөлөө

Көйгөй: жөргөмүш куралдары AJAX кирүү аныктыгын текшерүүгө жол бербейт.

Бул көрсөтмө сизге AJAX формасы аркылуу Python жана Mechanize деп аталган модул аркылуу кантип кирүүнү көрсөтөт. Жөргөмүштөр - бул веб -автоматташтыруу программасы, алар адамдар үчүн интернетте маалыматтарды чогултуу үчүн барган сайын популярдуу болуп баратат. Алар вебтин айланасында эң күчтүү веб -компанияларды иштетүү үчүн баалуу материалдарды чогултушат. Башкалары болсо чечим кабыл алууну жакшыртуу үчүн атайын маалымат топтомун чогултушат, же азыр "эмнеде" экенин билишет, же эң арзан саякат жолдорун табышат. Жөргөмүштөр (веб жөрмөлөгүчтөр, веб -боттор же экранды кыргычтар) HTML гупун акылдуу маалыматтын кээ бир көрүнүшүнө айландыруу үчүн эң сонун, бирок бизде AJAX иштетилген веб -баракчаларга келгенде JavaScript жана куки иштетилген сессиялар бар, алар кадимкидей чабытталбайт. жөргөмүш куралдардын топтому. Бул көрсөтмөдө биз pubmatic.com сайтында өзүбүздүн жеке баракчабызга киребиз. Бул кадамдар сизге ээрчүү ыкмасын көрсөтөт, бирок баракчаңыз башкача болот. Көңүл ачуу!

1 -кадам: материалдарды чогултуу

Материалдарды чогултуу
Материалдарды чогултуу

Сиз программалоо ресурстарыңызды толуктоону башташыңыз керек. Сизге төмөнкү программалар керек болот. Буларды орнотууга жардам берүү үчүн алардын көрсөтмөлөрүн колдонуңуз … Firebug орнотуу Бул Firefoxтун кошумча куралы PythonGoнун орнотулушу: python.orgГитүү: python.orgМеханикалаштыруу модулун орнотууMechanizeGet Mechanize алууБашка пайдалуу жөргөмүш куралдары: BeautifulSoup

2 -кадам: Сеанс түзүү үчүн керектүү аталыштарды табыңыз

Жакшы даярдалган жөргөмүш веб -баракчага адам башкарган браузер сыяктуу кирип, анын чыныгы келип чыгышы жашырылган. Браузерлер менен серверлердин өз ара аракеттешүүсүнүн бир бөлүгү GET жана POST сурамдары аркылуу болот, аларды сиз баштарынан таба аласыз (бул маалымат браузерде сейрек көрсөтүлөт, бирок абдан маанилүү). Бул маалыматтын айрымдарын Ctrl I (Firefoxто) басуу менен көрө аласыз, барактар жөнүндө маалымат терезесин ачыңыз. Өзүңүздү жумшак браузер катары жашыруу үчүн, сиз өзүңүздү ошол эле ишеним грамоталарын колдонуп аныкташыңыз керек. Эгер сиз браузериңизде JavaScript өчүрүлгөн пабматикке кирүүгө аракет кылсаңыз, багыттоо JavaScript аркылуу жүргүзүлгөндүктөн, өтө алыска кетпейсиз. Ошентип, көпчүлүк жөргөмүш браузерлерде JavaScript котормочулары жок экенин эске алып, биз альтернативдүү жол аркылуу логин аркылуу киришибиз керек болот. Баштоону тапшырууну чыкылдатуу менен, браузерден жөнөтүлгөн баш маалыматын алуудан баштайлы. Эгерде бул жөнөкөй браузердин логини болсо, анда форманы толтуруу үчүн "Механизацияны" колдонуп, тапшырууну басыңыз. Кадимки кирүү формалары… тегинин ичинде капсулаланган жана Механизациялаштыруу муну тапшырып, кийинки баракты эч кыйынчылыксыз сурай алат. Бизде толтурулган форма теги жок болгондуктан, тапшыруу функциясы JavaScript менен иштелүүдө. Келгиле, pubmatic's submitForm функциясын текшерип көрөлү. Бул үчүн, адегенде веб -баракчаны firefoxто ачыңыз жана оң колуңуздун ылдыйкы бурчундагы firefly басуу менен firebug күйгүзүңүз. Андан кийин скрипт өтмөгүн чыкылдатыңыз, пайда болгон бардык кодду көчүрүп, сүйүктүү текстти түзөтүү программасына орнотуңуз. Андан кийин submitForm функциясынан башка бардык коддорду жок кыла аласыз. Ал "submitForm (theform) {" функциясынан башталат жана мунун баары менен тарамыш кронштейнди жабуучу функциялар "}" менен башталат. Бул функцияны өтө примитивдүү түрдө анализдегенде, кээ бир аутентификация xmldoc деп аталган өзгөрмөнү алып келип, xml катары талданарын байкайбыз. Бул AJAXтин негизги өзгөчөлүгү, ал серверди сурамжылап, маалымат дарагын камтыган XML документин кайра алып келген. Аутентификация ийгиликтүү болсо, session_id түйүнү session_id камтыйт, муну бул кодду карап айтсаңыз болот: "if (session_id! = Null) {// login ийгиликтүү". Эми биз бул кичинекей JavaScriptтин бизди каалаган жакка алып кетишине жол бербегибиз келет, андыктан аутентификация учурунда серверге эмне жарыяланганын көрө алабыз. Бул үчүн биз төмөнкүдөй болгон бардык терезе багыттоолорун түшүндүрөбүз: "window.location =…". Буга комментарий берүү үчүн алардын алдына эки сызыкты кошуңуз: "//window.location…" бул коддун иштешине жол бербейт. Төмөндө Javascript файлын жүктөп алсаңыз болот, бул түзөтүүлөр буга чейин жасалган. JavaScriptтин бул түзөтүлгөн битин консоль терезелеринин оң жагына көчүрүп чаптаңыз жана иштетүүнү басыңыз. Бул биздин жаңы версиябыз барактагы JavaScript функциясын жокко чыгарат. Эми сиз ишеним грамотаңызды толтуруп, тапшырууну чыкылдатсаңыз, POST жана GET башкы маалыматы консолго толтурулганын көрүшүңүз керек, бирок сиз эч жакка кетпейсиз. POST маалыматы AJAX функциялары менен серверге атылган маалымат мүмкүн болушунча, бул маалыматты блокнотко көчүрүп, чаптаңыз.

3 -кадам: Кодду даярдаңыз

Биз тапкан жаңы аталыштарды кошуудан мурун, келгиле, шаблондуу Механизация кирүү питон кодун түзөлү. Биз муну эки себептен улам жасап жатабыз, биринчиден, бизде жаңы нерселерди кошуу үчүн иштеген компонент бар, экинчиден, сиз кантип AJAX-y эмес веб-баракчасына кантип кирээриңизди көрөсүз. төмөнкү Аяктагандан кийин, аны таба алган жериңизде сактаңыз.#!/Usr/bin/python#-*-коддоо: utf-8-*-#Импортту модулуңуздан баштаңыз: импорттоо механикалаштыруудан Браузер#Өзүңүздү түзүңүз Browser () функциясы аркылуу браузердин мисалы; br = Browser ()#Браузерди жөргөмүштөргө көңүл бурбагандай кылып коюңуз.txt сурамдары#Муну кылдаттык менен аткарыңыз, эгер веб -баракча жөргөмүштөрдү жактырбаса, алар сизди ошол жерден табууга капа болушу мүмкүн.set_handle_robots (Жалган) #Киргиси келген баракчаны ачуу үчүн tobr.open ("https://pubmatic.com/04_betasignin.jsp") #Форманын атын билгендиктен, форманы аты менен тандап алам br.select_form ("кирүү")#Форма элементтеринин аттарын колдонуу менен форма элементтеринин аттарын киргиземbr ['email'] = "[email protected]" br ['password'] = "Asquid22"#br.submit () форманы жөнөтөт жана алынган баракты чыгарат, сиз жаңы браузердин мисалын түзөсүз#төмөндөгү жооп натыйжада pageresponse = br.submit ()#Бул веб -баракчанын денесин басып чыгарат#басып чыгаруу жооп.окуу ()

4 -кадам: Туура сигналдарды жөнөтүү

Туура сигналдарды жөнөтүү
Туура сигналдарды жөнөтүү

Механикалаштыруу 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 = "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 " CONNECTION = "тирүү калуу" CONTENT_TYPE = "application/x-www-form-urlencoded" REFERER = "https://pubmatic.com/04_betasignin.jsp"CONTENT_LENGTH =" 60 "COOKIE =" utma = 103266945.1970108512129101085121291010851212101085121210108512121010841212101085121210108412121010841212101084121010105412121010841212777 "" # "; KADUSERCOOKIE = EA2C3249-E822-456E-847A-1FF0D4085A85; utmz = 103266945.1210113004.1.1.utmccn = (direct) | utmcsr = (direct) | utmcmd = (none); JSESSBEE2E8C3C3C3C3C3C3C4C3E4C3E3C9C3C4F3C4F4C4C3E4C6C4C4C3C4E4C6C4C4C4C4C4C4C4C4C4A0C0C43 no-cache "CACHE_CONTROL =" no-cache "Бул өзгөрмөлөрдүн топтомун түзөт, андан кийин бизди баш катарга кошуу үчүн колдоно аласыз бул кодду киргизүү: br.add_header = [("Host", HOST)] br.add_headers = [("User-agent", USER_AGENT)] br.add_headers = [("Кабыл алуу", КАБЫЛ АЛУУ)] 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)] 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)] Эми биз баракты ачык функциясы деп атаганда, аталыштар серверге да жөнөтүлөт. br.open ("https://pubmatic.com/04_betasignin.jsp")

5 -кадам: Механизацияланган кукилер

Механикалаштырылган кукилер
Механикалаштырылган кукилер

Бул кадам механикалаштырылгандыктан, кукилерди иштетүүнү автоматташтырат, бирок эмне болуп жатканын билүү маанилүү:

Форма тапшырылганда сизде JavaScript функциясын колдонуп тапшырган сыяктуу туура аталыштар бар. Андан кийин сервер бул маалыматты аныктайт жана сеанстын идентификаторун түзөт жана эгер колдонуучу аты менен сырсөз туура болсо, аны кукиге сактайт. Жакшы жаңылык - Mechanize автоматтык түрдө кукилерди жейт жана кайра иштетет, андыктан кукилерди жөнөтүү жана алуу жөнүндө кабатыр болбоңуз. Ошентип, сиз иштеп жаткан сеанстын идентификаторун түзгөндөн кийин, веб -сайттын мүчөлөрүнө гана кире аласыз.

6 -кадам: Жүрөктүн ачкычы

Эми биз сеанстын идентификаторун алдык жана Механизация аны кукилерге сактап койдук, биз кайда баруу керектигин билүү үчүн JavaScriptти колдоно алабыз. Ийгиликке кайда барууну көрүү үчүн "if (session_id! = Null) {// login ийгиликтүү" ичин карап. Терезенин көчүрүү кодун карап: "if (adurlbase.search (/pubmatic.com/)! = -1) {window.location =" https://pubmatic.com/05_homeloggedin.jsp " +"? V = " + Math.random ()*10000; " https://pubmatic.com/05_homeloggedin.jsp? Келгиле, жөн гана кирүү үчүн жасалма кокустук санды түзүп, жаңы ачылган баракты окуу үчүн жаңы браузердин мисалын түзөлү: answer2 = br.open ("https://pubmatic.com/05_homeloggedin.jsp?v=2703") Жана бул керек бол Сиздин кодуңуз бүттү, тийиштүү аталыштарды колдонуп, куки иштеткичти механикалаштырып, биз азыр pubmatic. Open терминалынын ички бөлүктөрүнө кире алабыз, төмөндөгү питон пакетин жүктөп, ал жерден чыгып кетиңиз. Бул үчүн python2.5 түрүн, андан кийин.py файлына өтүүчү жолду жасаңыз.

Сунушталууда: