Мазмұны:

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

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

Бейне: Ajax веб -сайтына асинхронды кіру формасын қолдану: 6 қадам (суреттермен)
Бейне: MAX6675 Температура термопары через WiFi с ESP8266 NodeMCU D1 Mini 2024, Қараша
Anonim
Ajax веб -сайтында асинхронды кіру формасы бар
Ajax веб -сайтында асинхронды кіру формасы бар

Мәселе: Өрмекші құралдары 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 файлдары
Механикаландырылған cookie файлдары

Бұл қадам механикаландыру 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 файлының жолын енгізіңіз.

Ұсынылған: