Բովանդակություն:

Այաքսի վեբ կայքի սփինդինգը ասինխրոն մուտքի ձևով. 6 քայլ (նկարներով)
Այաքսի վեբ կայքի սփինդինգը ասինխրոն մուտքի ձևով. 6 քայլ (նկարներով)

Video: Այաքսի վեբ կայքի սփինդինգը ասինխրոն մուտքի ձևով. 6 քայլ (նկարներով)

Video: Այաքսի վեբ կայքի սփինդինգը ասինխրոն մուտքի ձևով. 6 քայլ (նկարներով)
Video: Ի՞նչ է հայտնի Թուրքիայի մեջլիսի հայազգի պատգամավորության թեկնածուի մասին 2024, Դեկտեմբեր
Anonim
Այաքսի կայքէջի սփինդինգ ՝ ասինխրոն մուտքի ձևով
Այաքսի կայքէջի սփինդինգ ՝ ասինխրոն մուտքի ձևով

Խնդիր. Spidering գործիքները թույլ չեն տալիս AJAX մուտքի վավերացում:

Այս ձեռնարկը ցույց կտա ձեզ, թե ինչպես մուտք գործել AJAX ձևի միջոցով ՝ օգտագործելով Python- ը և Mechanize կոչվող մոդուլը: Սարդերը վեբ ավտոմատացման ծրագրեր են, որոնք ավելի ու ավելի տարածված են դառնում մարդկանց համար տվյալների հավաքագրման համար: Նրանք սողում են համացանցի շուրջ ՝ հավաքելով թանկարժեք նյութեր ՝ սնուցելու համար շրջակա ամենահզոր վեբ ընկերությունները: Մյուսները սողում են և հավաքում տվյալների որոշակի փաթեթ ՝ որոշումների կայացումը բարելավելու համար, կամ եզրակացնելու, թե ինչն է այժմ «ներսում», կամ գտնելու ամենաէժան ճանապարհորդական ուղիները: Սարդերը (վեբ սողուններ, վեբ -բոտեր կամ էկրանի քերիչներ) հիանալի են HTML goop- ը խելամիտ տվյալների տեսքի վերածելու համար, սակայն մենք խնդիր ունենք, երբ խոսքը վերաբերում է AJAX- ով միացված վեբ էջերին, որոնք ունեն JavaScript և cookie միացված նստաշրջաններ, որոնք նորմալ նավարկելի չեն: սարդի գործիքների հավաքածու: Այս ուսանելի հոդվածում մենք մուտք կունենանք pubmatic.com- ի մեր սեփական անդամների էջ: Այս քայլերը ցույց կտան ձեզ հետևելու մեթոդ, բայց ձեր էջը տարբեր կլինի: Զվարճանալ!

Քայլ 1: Հավաքեք նյութեր

Նյութեր հավաքել
Նյութեր հավաքել

Դուք պետք է սկսեք լրացնել ձեր ծրագրավորման ռեսուրսները: Ձեզ հարկավոր կլինեն հետևյալ ծրագրերը: Օգտագործեք նրանց ուղեցույցները, որոնք կօգնեն ձեզ տեղադրել դրանք … Տեղադրեք Firebug Դա Firefox հավելում է Տեղադրեք Python Գնացեք ՝ python.org Գնացեք ՝ python.org Տեղադրեք Mechanize Module Ստացեք MechanizeGet Mechanize Այլ օգտակար Spidering գործիքներ ՝ BeautifulSoup

Քայլ 2: Գտեք նստաշրջան ստեղծելու համար անհրաժեշտ վերնագրերը:

Լավ մշակված սարդը մուտք կգործի մի կայք, կարծես դիտարկիչ լինի, որը վերահսկվում է մարդու կողմից ՝ թաքցնելով իր իսկական ծագման մասին տեղեկությունները: Browsննարկիչների և սերվերների փոխազդեցության մի մասը տեղի է ունենում GET և POST հարցումների միջոցով, որոնք կարող եք գտնել վերնագրերում (այս տեղեկատվությունը հազվադեպ է ցուցադրվում բրաուզերում, բայց շատ կարևոր է): Այս տեղեկությունները կարող եք դիտել ՝ սեղմելով Ctrl I (firefox- ում) ՝ Էջի տեղեկատվության պատուհանը բացելու համար: Քեզ քողարկելու համար որպես մեղմ դաստիարակված դիտարկիչ, պետք է նույնականացնես ինքդ քեզ ՝ օգտագործելով նույն հավատարմագրերը: Եթե դուք փորձում եք մուտք գործել pubmatic ձեր դիտարկիչում անջատված JavaScript- ով, ապա շատ հեռու չէիք գնա, քանի որ վերահղումները կատարվում են javascript- ի միջոցով: Այսպիսով, հաշվի առնելով, որ սարդ -բրաուզերների մեծ մասը չունի javascript- ի թարգմանիչներ, մենք ստիպված կլինենք մուտք գործել այլընտրանքային երթուղու միջոցով: Սկսենք ՝ դիտարկիչից ուղարկվող վերնագրի տեղեկությունները ստանալով, երբ սեղմում եք ներկայացնելը: Եթե սա դիտարկիչի սովորական մուտքն էր, ապա օգտագործե՛ք Mechanize ՝ ձևը լրացնելու և կտտացնելու համար ներկայացնել: Սովորական մուտքի ձևերը ներառված են… պիտակի մեջ, և Mechanize- ը կկարողանա առանց դժվարության ներկայացնել սա և հարցում կատարել հաջորդ էջում: Քանի որ մենք չունենք լրացված ձևի պիտակ, ներկայացման գործառույթը մշակվում է javascript- ով: Եկեք ստուգենք pubmatic- ի submitForm գործառույթը: Դա անելու համար նախ բացեք կայքը firefox- ում և միացրեք firebug- ը ՝ կտտացնելով ներքևի աջ անկյունում գտնվող firefly- ին: Այնուհետև կտտացրեք սցենարի ներդիրին, պատճենեք հայտնված ամբողջ ծածկագիրը և տեղադրեք այն ձեր նախընտրած տեքստի խմբագրման ծրագրաշարի մեջ: Այնուհետև կարող եք ջնջել ամբողջ ծածկագիրը, բացառությամբ submitForm գործառույթի: Այն սկսվում է «submitForm (theform) {» գործառույթով և դրա միջև ընկած ամեն ինչից և գանգուր փակագիծը փակող գործառույթներից: Սա AJAX- ի հիմնական առանձնահատկությունն է, այն հարցում է կատարել սերվերի վրա և հետ բերել որոշ XML փաստաթուղթ, որը պարունակում է տեղեկատվության ծառ: Session_id հանգույցը պարունակում է session_id, եթե նույնականացումը հաջող էր, դուք կարող եք դա ասել ՝ նայելով այս կոդին ՝ «եթե (session_id! = Null) {// մուտքը հաջողված է»: Այժմ մենք ուզում ենք թույլ չտալ, որ javascript- ի այս հատվածը մեզ տանի որևէ տեղ, որպեսզի տեսնենք, թե ինչ է տեղադրվում սերվերին սերտիֆիկացման ընթացքում: Դա անելու համար մենք մեկնաբանում ենք պատուհանի ցանկացած վերահղում, որն ունի այս տեսքը. "Window.location =…": Սա մեկնաբանելու համար ավելացրեք կրկնակի շեղ գծեր նրանց առջև, այսպես. Ստորև կարող եք ներբեռնել Javascript ֆայլը, որն արդեն կատարել է այս խմբագրումները: Պատճենեք և տեղադրեք javascript- ի այս խմբագրված բիթը վահանակի պատուհանների աջ կողմում և կտտացրեք գործարկել: Սա մերժում է մեր նոր տարբերակով էջում արդեն տեղադրված javascript գործառույթը: Այժմ, երբ լրացնում եք ձեր հավատարմագրերը և կտտացնում եք ներկայացմանը, դուք պետք է տեսնեք POST և GET վերնագրի տվյալները, որոնք լրացնում են մխիթարիչը, բայց որևէ տեղ չեք գնա: POST տեղեկատվությունը սերվերին փոխանցված տեղեկատվությունն է AJAX գործառույթներով, դուք ցանկանում եք լինել այնքան: հնարավորինս նման, պատճենեք և տեղադրեք այդ տեղեկությունները նոթատետրում:

Քայլ 3: Պատրաստեք ծածկագիրը

Նախքան գտած նոր վերնագրերը ավելացնելը, եկեք ստեղծենք կաղապարված Mechanize մուտքի python կոդ: Մենք դա անում ենք երկու պատճառով. հետեւելով. Ավարտելուց հետո այն պահեք որպես youfilename.py ինչ-որ տեղ կարող եք գտնել:#!/Usr/bin/python#-*-կոդավորումը ՝ utf-8-*-#Սկսեք ձեր մոդուլի ներմուծումից. դիտարկիչի օրինակ Browser () ֆունկցիայի կանչի միջոցով; br = Browser ()#Տեղադրեք զննարկիչը այնպես, որ այն անտեսի սարդերին: տեքստային հարցումներ#Դա արեք ուշադիր, եթե վեբ էջը չի սիրում սարդեր, նրանք կարող են վրդովվել ձեզ այնտեղ գտնելու համար.set_handle_robots (Կեղծ) #Բացեք այն էջը, որտեղ ցանկանում եք մուտք գործել tobr.open ("https://pubmatic.com/04_betasignin.jsp") #Քանի որ ես գիտեմ ձևի անունը, ես կարող եմ պարզապես ընտրել ձևը («մուտք»)#Ձևի տարրերի անունների միջոցով մուտքագրում եմ ձևի տարրերի անունները () ուղարկում է ձևը և քաշում արդյունքը

Քայլ 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 = "դիմում / x-www-ձեւ-urlencoded« Referer = "https://pubmatic.com/04_betasignin.jsp"CONTENT_LENGTH =" 60 "COOKIE =" utma = 103266945.1970108054.1210113004.1212104087.1212791201.20; KADUSERCOOKIE = EA2C3249-E822-456E-847A-1FF0D4085A85; utmz = 103266945.1210113004.1.1.utmccn = (ուղղակի) | utmcsr = (ուղղակի) | utmcmd = (ոչ) no-cache "CACHE_CONTROL =" no-cache "Սա ստեղծում է մի շարք փոփոխականներ, որոնք կարող եք օգտագործել` մեզ վերնագրին միացնելու համար այս ծածկագրում ՝ br.add_header = [(«Հյուրընկալող», HOST)] br.add_headers = [("Օգտվող-գործակալ", USER_AGENT)] br.add_headers = [("Ընդունել", ACCEPT)] br.add_header = [("Ընդունել-լեզու", ACCEPT_LANGUAGE)] br.add_headers = [("Accept-Encoding", ACCEPT_ENCODING)] br.add_headers = [("Accept-Charset", ACCEPT_CHARSET)] br.add_header = [("Keep-Alive ", KEEP_ALIVE)] br.add_headers = [(" Միացում ", ՄԻԱՈԹՅՈՆ)] br.add_header = [(" Բովանդակության տեսակ ", CONTENT_TYPE)] br.add_header = [(" Հղում կատարող ", ՀԵՏԱԴԱՐՁ)] br.add_header = [("Բովանդակություն-երկարություն", 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: Մեխանիկականացված թխվածքաբլիթներ

Մեխանիկական թխվածքաբլիթներ
Մեխանիկական թխվածքաբլիթներ

Այս քայլը տեղի է ունենում այն պատճառով, որ մեքենայացնելը ավտոմատացնում է cookie- ների մշակումը, բայց կարևոր է իմանալ, թե ինչ է տեղի ունենում.

Երբ ձևը ներկայացվում է, դուք ունեք ճիշտ վերնագրեր, կարծես թե ներկայացրել եք javascript գործառույթի միջոցով: Այնուհետև սերվերը վավերացնում է այս տեղեկատվությունը և առաջացնում նիստի ID և պահում այն cookie- ում, եթե օգտվողի անունն ու գաղտնաբառը ճիշտ են: Լավ նորությունն այն է, որ Mechanize- ը ինքնաբերաբար ուտում և հետ է մղում բլիթները, այնպես որ կարիք չունեք անհանգստանալու cookie- ի ուղարկման և ստացման մասին: Այսպիսով, երբ ստեղծեք նստաշրջանի ID, որն աշխատում է, կարող եք մուտքագրել վեբ կայքի միայն անդամները:

Քայլ 6: Սրտի բանալին

Այժմ, երբ մենք ձեռք ենք բերել նիստի ID և Mechanize- ը պահում ենք այն իր cookie- ներում, կարող ենք հետևել javascript- ին ՝ տեսնելու, թե ուր պետք է գնանք: Նայելով «եթե (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= որոշ պատահական համար: Այսպիսով, եկեք պարզապես ստեղծենք կեղծ պատահական թիվ ՝ մուտքագրելու և ստեղծելու դիտարկիչի նոր օրինակ ՝ նորաբաց էջը կարդալու համար. լինի դա: Ձեր ծածկագիրն այժմ ավարտված է, օգտագործելով համապատասխան վերնագրերը և մեխանիկականացնել cookie- ի մշակողը, այժմ կարող ենք մուտք գործել pubmatic- ի ներքին հատված: Բացեք տերմինալը, տեղադրեք ներքևում տեղադրված python փաթեթը և մուտք գործեք: Դա անելու համար մուտքագրեք python2.5, այնուհետև filepath դեպի.py ֆայլ:

Խորհուրդ ենք տալիս: