Мазмуну:
- 1 -кадам: материалдарды чогултуу
- 2 -кадам: Сеанс түзүү үчүн керектүү аталыштарды табыңыз
- 3 -кадам: Кодду даярдаңыз
- 4 -кадам: Туура сигналдарды жөнөтүү
- 5 -кадам: Механизацияланган кукилер
- 6 -кадам: Жүрөктүн ачкычы
Video: Ajax веб -сайтын асинхрондук кирүү формасы менен өрмөк: 6 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:43
Көйгөй: жөргөмүш куралдары 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 файлына өтүүчү жолду жасаңыз.
Сунушталууда:
УЗИ менен асинхрондук тоскоолдуктарды аныктоо: 4 кадам
УЗИ жардамы менен тоскоолдуктарды асинхрондук түрдө аныктоо: Мен көңүл ачуу үчүн үйдүн ичинде автономдуу түрдө жылгым келген роботту куруп жатам. Бул узун иш жана мен кадам сайын жасап жатам. Бул үйрөткүч Arduino Mega менен тоскоолдуктарды табууга багытталган. Ультрадыбыштуу сенсорлор HC-SR04 vs HY-SRF05 арзан жана
$ 3 Компьютердик процессордун кирүү желдеткичи: 7 кадам (сүрөттөр менен)
$ 3 Компьютердик CPU кирүү күйөрман каналы: Компьютериңиздин капталынан CPU желдеткичине кирүүчү каналга ээ болуу сизге башка (аба) муздатуучу вариантка караганда алда канча жакшы муздатууну берет. Башка компоненттен жылынууга убактысы бар алдыңкы порттон алынган абаны колдонуунун ордуна
WiFi кирүү чекитин түзүңүз жана NodeMCU V3: 4 кадамдарында веб -сервер менен камсыз кылыңыз
WiFi кирүү чекитин түзүңүз жана NodeMCU V3 боюнча веб -сервер менен камсыз кылыңыз: мурунку макалада мен NodeMCU ESP8266ди кантип колдонуу керектиги жөнүндө сүйлөштүм. Макалада мен NodeMCU ESP8266ны Arduini IDEге кантип кошууну түшүндүрөм. NodeMCU ESP8266 аркылуу интернет аркылуу байланышуунун бир нече жолу бар. NodeMCU катары жасалууда
Ыңгайлаштырылган PCB антеннасы менен Raspberry Pi Zero Wifi кирүү чекити: 6 кадам (сүрөттөр менен)
Ыкчам PCB антеннасы менен Raspberry Pi Zero Wifi кирүү түйүнү: Биз эмне кылып жатабыз? Бул окуу куралынын аталышында техникалык терминдер көп. Келгиле, аны талкалайбыз. Raspberry Pi Zero (Rπ0) деген эмне? Raspberry Pi Zero - бул кичинекей компьютер. Бул Raspberry Pi бир такталуу компьютеринин кичирээк версиясы
Генератор "Дөңгөлөктүн формасы": 19 кадам (Сүрөттөр менен)
Генератор "Дөңгөлөктүн формасы": Салам баарына, бул жерде мен сизге дөңгөлөктү колдонуу менен электр энергиясын өндүрүү боюнча чыгармачыл идеяны сунуштайм. Кыскача айтканда, бул долбоордо мен дөңгөлөктүн эски жыгач түрүн заманбап генератор системасы менен бириктирип, өткөн менен азыркы учурду аралаштырам