Мазмұны:
- 1 -қадам: материалдарды жинау
- 2 -қадам: Сеанс құру үшін қажетті тақырыптарды табыңыз
- 3 -қадам: кодты дайындаңыз
- 4 -қадам: дұрыс сигналдарды жіберіңіз
- 5 -қадам: механикаландырылған печенье
- 6 -қадам: Жүректің кілті
Бейне: Ajax веб -сайтына асинхронды кіру формасын қолдану: 6 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:28
Мәселе: Өрмекші құралдары AJAX кіру аутентификациясына мүмкіндік бермейді.
Бұл нұсқаулық сізге Python және Mechanize деп аталатын модуль арқылы AJAX формасы арқылы қалай кіруге болатынын көрсетеді. Өрмекшілер - бұл Интернетте адамдарды жинаудың танымал әдісі болып табылатын веб -автоматтандыру бағдарламалары. Олар ғаламторды айналып өтіп, айналасындағы ең қуатты веб -компанияларды жандандыру үшін қымбат материалдар жинайды. Басқалары шешімдер қабылдауды жақсарту үшін немесе дәл қазір «не» екенін анықтау үшін немесе ең арзан саяхат маршруттарын табу үшін белгілі бір деректер жинағын іздейді. Өрмекшілер (веб -шолғыштар, веб -боттар немесе экран скреперлері) HTML -ді ақылды деректердің кейбір түріне айналдыруға өте ыңғайлы, бірақ бізде AJAX қосылған веб -беттерге қатысты JavaScript және cookie файлдарын қолдана алатын, олармен шарлауға болмайтын мәселе бар. өрмек құралдарының жиынтығы. Бұл нұсқаулықта біз pubmatic.com сайтындағы жеке мүше бетіне кіретін боламыз. Бұл қадамдар сізге орындалатын әдісті көрсетеді, бірақ сіздің бетіңіз басқаша болады. Масайрау!
1 -қадам: материалдарды жинау
Сіз бағдарламалау ресурстарын толықтыруды бастауыңыз керек. Сізге келесі бағдарламалар қажет болады. Оларды орнатуға көмектесу үшін олардың нұсқаулықтарын қолданыңыз … Firebug орнатыңыз - бұл Firefox қондырмасы PythonGo орнатыңыз: python.org өтіңіз: python.org Механизациялау модулін орнатыңыз Mechanize алыңыз Механизациялаңыз Басқа пайдалы өрмек құралдары: BeautifulSoup
2 -қадам: Сеанс құру үшін қажетті тақырыптарды табыңыз
Жақсы дайындалған паук веб -бетке адам басқаратын браузер сияқты кіре алады, бұл оның түпнұсқасын жасырады. Браузерлер мен серверлер арасындағы өзара әрекеттесудің бір бөлігі GET және POST сұраулары арқылы жүзеге асады, олар тақырыптарда болады (бұл ақпарат браузерде сирек көрсетіледі, бірақ өте маңызды). Бұл ақпараттың кейбірін Ctrl I (Firefox -те) батырмасын басу арқылы қарауға болады. Өзіңізді қарапайым браузер ретінде жасыру үшін сіз өзіңізді сол тіркелгі деректерін қолдана отырып тануыңыз керек, егер сіз браузерде JavaScript өшірілген публикативті жүйеге кіруге тырыссаңыз, сіз алысқа бармайсыз, себебі қайта бағыттау JavaScript арқылы жүзеге асады. Өрмекші браузерлердің көпшілігінде JavaScript аудармашылары жоқ екенін ескере отырып, біз балама маршрут арқылы кіруіміз керек. Жіберу түймесін басқан кезде браузерден тақырып туралы ақпаратты алуды бастайық. Егер бұл қарапайым браузер логині болса, сіз форманы толтыру үшін «Механикаландыру» функциясын қолданып, жіберуді басасыз. Қалыпты кіру формалары… тегінің ішіне салынған және Mechanize оны жіберіп, келесі бетті еш қиындықсыз сұрай алады. Бізде толтырылған форма тегі жоқ болғандықтан, жіберу функциясы JavaScript арқылы өңделеді. Pubmatic's submitForm функциясын тексерейік. Мұны істеу үшін алдымен Firefox -та веб -бетті ашып, төменгі оң жақ бұрыштағы отты шертіп, отты қосуды қосыңыз. Содан кейін сценарий қойындысын нұқыңыз, пайда болған барлық кодты көшіріп, оны сүйікті бағдарламалық жасақтамаға өңдеңіз. Содан кейін submitForm функциясынан басқа барлық кодты жоюға болады. Ол «submitForm (theform) {» функциясымен және бұлар мен бұйра жақшаны жабатын «}» функцияларынан басталады. Бұл функцияны талдағанда, кейбір аутентификацияның xml ретінде талданатын xmldoc деп аталатын айнымалы мәнді қайтаратынын байқаймыз. Бұл AJAX -тің басты ерекшелігі, ол серверде сауалнама жүргізді және ақпарат ағашы бар кейбір XML құжатын қайтарды. Session_id түйінінде session_id бар, егер аутентификация сәтті болса, оны мына кодты қарап отырып айтуға болады: «if (session_id! = Null) {// кіру сәтті». Енді біз аутентификация кезінде серверге не жіберілетінін көру үшін 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 (Өтірік) #Тіркелгіңіз келетін бетті ашыңыз («https://pubmatic.com/04_betasignin.jsp») («кіру»)#Пішін элементтерінің аттарын қолданып, форма элементтерінің атауын енгіземінbr ['email'] = «[email protected]» br ['password'] = «Asquid22»#br.submit () пішінді жібереді және алынған бетті шығарады, сіз жаңа браузер данасын жасайсыз#төмендегі жауап нәтижесінде алынған pageresponse = br.submit ()#Бұл алынған веб -беттің негізгі бөлігін басып шығарады#басып шығару жауабын оқыңыз.) ()
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 = «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.197010851212910108512129101085121291010851212101084121210108512121010841212101085121291010551212910105512127777777777777777 «» «; KADUSERCOOKIE = EA2C3249-E822-456E-847A-1FF0D4085A85; utmz = 103266945.1210113004.1.1.utmccn = (тікелей) | utmcsr = (тікелей) | utmcmd = (ешқайсысы); JSESSBEE8E3C32 no-cache «CACHE_CONTROL =» no-cache «Бұл айнымалылар жиынтығын жасайды, содан кейін бізге тақырыпқа қосу үшін пайдалануға болады осы кодты қолдану: br.add_header = [(«Хост», ХОСТ)] br.add_headers = [(«Пайдаланушы-агент», 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 = [(» Байланыс «, Байланыс)] br.add_header = [(» Мазмұн түрі «, CONTENT_TYPE)] br.add_header = [(» Сілтеме «, СІЛТЕМЕ)] br.add_header = [(«Content-Length», CONTENT_LENGTH)] br.add_headers = [(«Cookie», COOKIE)] br.add_headers = [(«Прагма», PRAGMA)] br.add_headers = [(«Кэшті басқару», CACHE_CONTROL))] Енді біз бетті ашық функция деп атағанда, тақырыптар серверге де жіберіледі. br.open («https://pubmatic.com/04_betasignin.jsp»)
5 -қадам: механикаландырылған печенье
Бұл қадам механикаландыру cookie файлдарын өңдеуді автоматтандырады, бірақ не болып жатқанын білу маңызды:
Пішін жіберілген кезде сізде JavaScript функциясын қолданып жібергендей дұрыс тақырыптар болады. Содан кейін сервер бұл ақпаратты растайды және сеанс идентификаторын жасайды және егер пайдаланушы аты мен құпия сөз дұрыс болса, оны cookie файлында сақтайды. Жақсы жаңалық - механикаландыру кукилерді автоматты түрде жейді және қайта жасайды, сондықтан сіз куки жіберу мен алу туралы алаңдамайсыз. Сонымен, сіз жұмыс істейтін сеанстық идентификаторды жасағаннан кейін сіз веб -сайттың тек мүшелер бөліміне кіре аласыз.
6 -қадам: Жүректің кілті
Енді біз сеанстың идентификаторын сатып алып, оны механикаландырдық, оны cookie файлдарына сақтадық, біз қайда бару керектігін білу үшін 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=some кездейсоқ санында орналасқан веб -сайтқа кіру керек екенін көреміз. Ендеше, жаңадан ашылған бетті оқу үшін жаңа браузер данасын енгізу үшін жаңа жалған кездейсоқ сан құрайық: answer2 = br.open («https://pubmatic.com/05_homeloggedin.jsp?v=2703») Және бұл керек бола ма Сіздің кодыңыз аяқталды, сәйкес тақырыптар мен куки өңдеушіні механикаландыру арқылы біз енді pubmatic ішкі бөліміне кіре аламыз, төмендегі питон пакетін жүктеп, жүйеден шығыңыз. Мұны істеу үшін python2.5, содан кейін.py файлының жолын енгізіңіз.
Ұсынылған:
Ультрадыбыспен кедергілерді асинхронды түрде анықтаңыз: 4 қадам
Ультрадыбыспен кедергілерді асинхронды түрде анықтаңыз: Мен ермек үшін үйдің ішінде автономды түрде қозғалатын робот құрастырамын. Бұл ұзақ жұмыс, мен біртіндеп жасаймын. Бұл нұсқаулық Arduino Mega көмегімен кедергілерді анықтауға бағытталған. Ультрадыбыстық датчиктер HC-SR04 vs HY-SRF05 арзан және
Хрустальды радио катушкалар формасын жасаңыз: 7 қадам
Хрустальды радио катушкалар пішінін жасаңыз: Бұл нұсқаулық сым катушкасын орайтын берік және берік түтікті жасауға көмектеседі. Хрустальды радиостанциялар немесе «түлкі» радиолары әлі де көңілді, ұлдар мен қыздар радионың алғашқы жылдарында оларды жасай бастағаннан жүз жыл өткен соң. Көп нәрсе
ESP8266 NodeMCU кіру нүктесі (AP) DT11 температура сенсоры бар веб -сервер үшін және шолуда температура мен ылғалдылықты басып шығару: 5 қадам
Браузерде DT11 температура сенсоры мен баспа температурасы мен ылғалдылығы бар веб -серверге арналған ESP8266 NodeMCU кіру нүктесі (AP): Сәлеметсіздер ме, біз ESP8266 пайдаланатын жобалардың көпшілігінде және жобалардың көпшілігінде біз ESP8266 -ды веб -сервер ретінде қолданамыз, осылайша деректерге қол жеткізуге болады. ESP8266 орналастырған веб -серверге кіру арқылы Wi -Fi арқылы кез келген құрылғы, бірақ жалғыз мәселе - бізге жұмыс маршрутизаторы қажет
WiFi кіру нүктесін жасаңыз және NodeMCU V3: 4 қадамдарында веб -серверді қамтамасыз етіңіз
Wi -Fi кіру нүктесін жасаңыз және NodeMCU V3 -те веб -серверді қамтамасыз етіңіз: алдыңғы мақалада мен NodeMCU ESP8266 қалай қолдану керектігі туралы айтқан болатынмын. Мақалада мен NodeMCU ESP8266 -ны Arduini IDE -ге қалай қосу керектігін түсіндіремін. NodeMCU жасау
Бір орамалы асинхронды қозғалтқыш / электр қозғалтқышы: 6 қадам
Бір орамалы асинхронды қозғалтқыш / электр қозғалтқышы: Бұл жобада біз бір орамалы асинхронды қозғалтқышты коммерциялық етіп жасамақпыз, және бұл электр қозғалтқышының нұсқалары ауыспалы ток құрылғыларының көпшілігінде қолданылады. Біздің қозғалтқышта жоғары момент жоқ, бұл жұмыс туралы көбірек