Mundarija:

Ajax veb -saytini asinxron kirish shakli bilan o'rgatish: 6 qadam (rasmlar bilan)
Ajax veb -saytini asinxron kirish shakli bilan o'rgatish: 6 qadam (rasmlar bilan)

Video: Ajax veb -saytini asinxron kirish shakli bilan o'rgatish: 6 qadam (rasmlar bilan)

Video: Ajax veb -saytini asinxron kirish shakli bilan o'rgatish: 6 qadam (rasmlar bilan)
Video: 072. Async JavaScript Web API (Sinxron) | JavaScript darslari | O'zbek tilida | JavaScript Amaliyot 2024, Iyul
Anonim
Asenkron kirish formasi bilan Ajax veb -saytini o'rgatish
Asenkron kirish formasi bilan Ajax veb -saytini o'rgatish

Muammo: o'rgimchak asboblari AJAX login autentifikatsiyasiga ruxsat bermaydi.

Bu ko'rsatma sizga Python va Mechanize moduli yordamida AJAX formasi orqali qanday kirishni ko'rsatib beradi. O'rgimchaklar - bu veb -avtomatlashtirish dasturlari bo'lib, odamlar Internetda ma'lumotlarni to'plashning tobora ommalashib borayotgan usuliga aylanmoqda. Ular Internetda aylanib yurib, atrofidagi eng qudratli veb -kompaniyalarni to'ldirish uchun qimmatbaho materiallarni to'playdilar. Boshqalar esa, qaror qabul qilishni yaxshilash, yoki hozirda "nima" borligini aniqlash, yoki eng arzon sayohat yo'nalishlarini topish uchun aylanib yurishadi va ma'lum ma'lumotlarni to'playdilar. O'rgimchaklar (veb -brauzerlar, veb -botlar yoki ekran qirg'ichlari) HTML -fayllarni aqlli ma'lumotlarning ko'rinishiga aylantirish uchun juda yaxshi, lekin bizda AJAX yoqilgan veb -sahifalarda JavaScript va cookie -fayllar bilan oddiy navigatsiya qilinmaydigan muammo bor. o'rgimchak asboblari to'plami. Bu ko'rsatmada biz pubmatic.com saytidagi o'z a'zolarimiz sahifasiga kiramiz. Bu qadamlar sizga amal qilish usulini ko'rsatadi, lekin sizning sahifangiz boshqacha bo'ladi. Maza qiling!

1 -qadam: materiallarni yig'ish

Materiallarni yig'ish
Materiallarni yig'ish

Siz dasturlash manbalarini to'ldirishni boshlashingiz kerak bo'ladi. Sizga quyidagi dasturlar kerak bo'ladi. Bularni o'rnatishda yordam berish uchun ularning qo'llanmalaridan foydalaning … Firebug -ni o'rnating Firefox -ning qo'shimchasi Python -ga o'ting: python.org -ga o'ting: python.org -ga Mexanizatsiya modulini o'rnating Mechanize -ni oling Mexanizatsiyani oling Boshqa foydali o'rgimchak asboblari: BeautifulSoup

2 -qadam: sessiya yaratish uchun kerakli sarlavhalarni toping

Yaxshi ishlab chiqilgan o'rgimchak veb -sahifaga xuddi odam tomonidan boshqariladigan brauzer kabi kirib keladi, bu uning asl kelib chiqishi haqida ma'lumot beradi. Brauzerlar va serverlar o'rtasidagi o'zaro munosabatlarning bir qismi GET va POST so'rovlari orqali amalga oshiriladi, ularni sarlavhalarda topishingiz mumkin (bu ma'lumotlar kamdan -kam hollarda brauzerda ko'rsatiladi, lekin juda muhim). Sahifa ma'lumoti oynasini ochish uchun Ctrl I (Firefox -da) tugmachasini bosib, bu ma'lumotlarning bir qismini ko'rishingiz mumkin. O'zingizni yumshoq muomalali brauzer sifatida yashirish uchun siz o'zingizni xuddi shu hisob ma'lumotlari yordamida tanitishingiz kerak. Agar siz brauzeringizda javascript o'chirilgan holda pubmatic tizimiga kirmoqchi bo'lsangiz, siz uzoqqa borolmaysiz, chunki qayta yo'naltirishlar JavaScript orqali amalga oshiriladi. Ko'pchilik o'rgimchak brauzerlarida javascript tarjimonlari yo'qligini hisobga olsak, biz muqobil yo'l orqali login orqali kirishimiz kerak bo'ladi. Yuborish tugmachasini bosganingizda brauzerdan sarlavha ma'lumotlarini olishni boshlaylik. Agar bu oddiy brauzer kirish bo'lsa, siz shaklni to'ldirish uchun "Mexaniklashtirish" dan foydalangan bo'lar edingiz va "Yuborish" tugmasini bosgan bo'lar edingiz. Oddiy kirish shakllari… tagiga kiritilgan va Mechanize buni yuborishi va keyingi sahifani muammosiz so'roq qilishi mumkin. Bizda to'ldirilgan ariza yorlig'i yo'qligi sababli, topshirish funktsiyasi javascript yordamida amalga oshiriladi. Keling, pubmaticning submitForm funktsiyasini tekshirib ko'ramiz. Buni amalga oshirish uchun avval firefox -da veb -sahifani oching va o'ng pastki burchakdagi firefly -ni bosish orqali firebug -ni yoqing. Keyin skript yorlig'ini bosing, paydo bo'lgan barcha kodlarni nusxa ko'chiring va uni sevimli matn tahrirlash dasturiga joylashtiring. Keyin submitForm funktsiyasidan tashqari barcha kodlarni o'chirib tashlashingiz mumkin. Bu "submitForm (theform) {" funktsiyasidan boshlanadi va bu orasidagi hamma narsa va "}" jingalak qavsni yopuvchi funktsiyalar orasidagi hamma narsa. Bu funktsiyani juda sodda tarzda tahlil qilsak, ba'zi autentifikatsiya xmldoc deb nomlangan o'zgaruvchini qaytarib olib, uni xml sifatida ajratilishini ko'ramiz. Bu AJAX -ning asosiy xususiyati, u serverda so'rov o'tkazgan va ma'lumot daraxti bo'lgan XML hujjatini qaytargan. Sessiya_id tugunida session_id mavjud, agar autentifikatsiya muvaffaqiyatli o'tgan bo'lsa, buni quyidagi kodni ko'rish orqali aytish mumkin: "if (session_id! = Null) {// login muvaffaqiyatli". Endi biz JavaScript -ni bizni istalgan joyga olib ketishining oldini olishni xohlaymiz, shunda biz autentifikatsiya paytida serverga nima yuborilayotganini bilib olamiz. Buni amalga oshirish uchun biz oynaning yo'naltirishlarini quyidagicha izohlaymiz: "window.location = …". Bunga izoh berish uchun ularning oldiga ikkita chiziqni qo'shing: "//window.location…" bu kodni ishga kirishiga to'sqinlik qiladi. Javascript faylini yuklab olishingiz mumkin, bu tahrirlar allaqachon qilingan. Javascriptning bu tahrirlangan qismini konsol oynasining o'ng tomoniga ko'chiring va joylashtiring va ishga tushirish tugmasini bosing. Bu bizning yangi versiyamiz bilan sahifada joylashgan JavaScript funktsiyasini bekor qiladi. Endi siz hisob ma'lumotlarini to'ldirganingizda va "Yuborish" tugmasini bosganingizda, POST va GET sarlavhasi haqidagi ma'lumotlar konsolni to'ldirganini ko'rasiz, lekin siz hech qayerga bormaysiz. iloji boricha bu ma'lumotni daftarga ko'chiring va joylashtiring.

3 -qadam: Kodni tayyorlang

Yangi sarlavhalarni qo'shishdan oldin, biz kirgiziladigan python kodini mexanizatsiyalashtirilgan shablonini yaratamiz. Biz buni ikkita sababga ko'ra qilyapmiz, birinchi navbatda bizda yangi narsalarni qo'shish uchun ishlaydigan komponent bor, shuning uchun siz odatda AJAX-y bo'lmagan veb-sahifaga qanday kirganingizni ko'rasiz. quyidagi. Ishingiz tugagach, uni topishingiz mumkin bo'lgan joyga saqlang. brauzer misoli Browser () funktsiyasi orqali chaqiriladi; br = Browser ()#Brauzerni o'rgimchaklarga e'tibor bermaydigan qilib o'rnating.txt so'rovlari#Buni diqqat bilan bajaring, agar veb -sahifa o'rgimchaklarni yoqtirmasa, ular sizni topishi sizni xafa qilishi mumkin. set. ("login")#Forma elementlari nomlaridan foydalanib, men form elementlarining nomlarini kiritamanbr ['email'] = "[email protected]" br ['password'] = "Asquid22"#br.submit () shaklni yuboradi va natijada paydo bo'lgan sahifani tortib oladi, siz yangi brauzer misolini yaratasiz#quyida berilgan javob natijada pageresponse = br.submit ()#Bu qabul qilingan veb -sahifaning asosiy qismini chop etadi#print answer.read ()

4 -qadam: to'g'ri signallarni yuboring

To'g'ri signallarni yuboring
To'g'ri signallarni yuboring

Mexanizatsiya POST sarlavhalariga sarlavhalarni qo'shish uchun oson funktsiyaga ega, bu bizga sahifaga birinchi marta kirgan brauzerda ko'rinishga imkon beradi. Faylni Firebug yordamida topilgan sarlavhalar bilan oching va mos keladigan tarzda ushbu matnli faylni tahrirlang. Qo'shtirnoq ichidagi hamma narsani sarlavha ro'yxatidagi tegishli element bilan almashtiring: 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/oddiy; 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 = "tirik qolish" CONTENT_TYPE = "application/x-www-form-urlencoded" REFERER = "https://pubmatic.com/04_betasignin.jsp"CONTENT_LENGTH =" 60 "COOKIE =" utma = 103266945.197010805412910108512129101085121291010851212910108512129101055121291010851212910108512129101085121291010851212910108512129101055121291010551212910108412.1210108412.12910105512129101084129 "); KADUSERCOOKIE = EA2C3249-E822-456E-847A-1FF0D4085A85; utmz = 103266945.1210113004.1.1.utmccn = (to'g'ridan-to'g'ri) | utmcsr = (to'g'ridan-to'g'ri) | utmcmd = (hech biri); JSESSBEE8E2C33 no-cache "CACHE_CONTROL =" no-cache "Bu o'zgarmaydiganlar to'plamini yaratadi, keyin ularni bizga sarlavhaga qo'shish uchun ishlatishingiz mumkin. bu kodni kiriting: br.add_header = [("Xost", HOST)] br.add_headers = [("Foydalanuvchi-agent", USER_AGENT)] br.add_headers = [("Qabul qiling", QABUL QILING)] br.add_header = [("Qabul qilish-til", ACCEPT_LANGUAGE)] br.add_headers = [("Qabul qilish-kodlash", ACCEPT_ENCODING)] br.add_headers = [("Qabul qilish-Charset", ACCEPT_CHARSET)] br.add_header = [("Tirik qolish") ", KEEP_ALIVE)] br.add_headers = [(" Ulanish ", Ulanish)] br.add_header = [(" Kontent turi ", CONTENT_TYPE)] br.add_header = [(" Murojaatchi ", REFERER)] br.add_header = [("Kontent uzunligi", CONTENT_LENGTH)] br.add_headers = [("Cookie", COOKIE)] br.add_headers = [("Pragma", PRAGMA)] br.add_headers = [("Kesh-nazorat", CACHE_CONTROL))] Endi biz sahifani ochiq funksiya deb ataganimizda, sarlavhalar ham serverga yuboriladi. br.open ("https://pubmatic.com/04_betasignin.jsp")

5 -qadam: Mexaniklashtirilgan cookie fayllari

Mexaniklashtirilgan cookie fayllari
Mexaniklashtirilgan cookie fayllari

Bu qadam, chunki mexanizatsiyalash cookie fayllarini boshqarishni avtomatlashtiradi, lekin nima bo'layotganini bilish juda muhim:

Shakl yuborilganda siz javascript funktsiyasidan foydalanib yuborganingiz kabi to'g'ri sarlavhalarga egasiz. Keyin server bu ma'lumotni tasdiqlaydi va seans identifikatorini yaratadi va foydalanuvchi nomi va parol to'g'ri bo'lsa, uni cookie -faylga saqlaydi. Yaxshi xabar shundaki, mexanizatsiyalashgan cookie -fayllarni avtomatik ravishda yeyadi va qayta tiklaydi, shuning uchun siz cookie -fayllarni yuborish va qabul qilishdan xavotir olmaysiz. Shunday qilib, siz ishlaydigan identifikatorni yaratganingizdan so'ng, siz faqat veb -sayt a'zolari bo'limiga kirishingiz mumkin.

6 -qadam: Yurak kaliti

Endi biz sessiya identifikatorini oldik va Mechanize uni cookie -fayllarga saqladik, biz qayerga borish kerakligini ko'rish uchun JavaScript -ga amal qilishimiz mumkin. Qayerda muvaffaqiyat qozonish kerakligini bilish uchun "if (session_id! = Null) {// login muvaffaqiyatli" ga qarang. Oynani ko'chirish kodiga qarab: "if (adurlbase.search (/pubmatic.com/)! = -1) {window.location =" https://pubmatic.com/05_homeloggedin.jsp " +"? V = " + Math.random ()*10000; " https://pubmatic.com/05_homeloggedin.jsp? Keling, yangi ochilgan sahifani o'qish uchun yangi brauzer misolini kiritish uchun yangi tasodifiy raqamni yarataylik: javob2 = br.open ("https://pubmatic.com/05_homeloggedin.jsp?v=2703") Va bu kerak bo'lsin. Sizning kodingiz tugallandi, tegishli sarlavhalar va cookie -fayllarni mexanizatsiyalash vositasi yordamida biz endi pubmatic -ning ichki qismiga kira olamiz, terminalni oching, pastdagi python paketini yuklang va tizimdan chiqing. Buni amalga oshirish uchun python2.5 va keyin.py faylining yo'lini kiriting.

Tavsiya: