Orodha ya maudhui:

Kugawanya Wavuti ya Ajax na Fomu ya Kuingia ya Asynchronous: Hatua 6 (na Picha)
Kugawanya Wavuti ya Ajax na Fomu ya Kuingia ya Asynchronous: Hatua 6 (na Picha)

Video: Kugawanya Wavuti ya Ajax na Fomu ya Kuingia ya Asynchronous: Hatua 6 (na Picha)

Video: Kugawanya Wavuti ya Ajax na Fomu ya Kuingia ya Asynchronous: Hatua 6 (na Picha)
Video: Mambo Matano (5) Ya Kufanya Uweze Kuwa Kiongozi Mzuri 2024, Novemba
Anonim
Kugawanya Wavuti ya Ajax na Fomu ya Kuingia ya Asynchronous
Kugawanya Wavuti ya Ajax na Fomu ya Kuingia ya Asynchronous

Shida: Zana za kutawanya haziruhusu uthibitishaji wa kuingia kwa AJAX.

Mafundisho haya yatakuonyesha jinsi ya kuingia kupitia fomu ya AJAX ukitumia Python na moduli iitwayo Mechanize. Buibui ni programu za kiotomatiki za wavuti ambazo zinazidi kuwa njia maarufu kwa watu kukusanya data mkondoni. Wanazunguka kwenye wavuti wakikusanya vifaa vya thamani ili kuchochea kampuni zenye nguvu zaidi za wavuti karibu. Wengine hutambaa na kukusanya seti maalum za data ili kuboresha maamuzi, au kudhibitisha kile ambacho "kiko" sasa, au kupata njia za bei rahisi za kusafiri. Buibui (watambazaji wa wavuti, wavuti, au skripper za skrini) ni nzuri kwa kugeuza goop ya HTML kuwa sawa na data yenye akili, lakini tuna shida linapokuja ukurasa wa wavuti uliowezeshwa wa AJAX ambao una vikao vya JavaScript na vidakuzi ambavyo haviwezi kusafiri na kawaida seti ya zana za kuzunguka. Katika hii inayoweza kufundishwa tutapata ukurasa wetu wa mwanachama katika pubmatic.com. Hatua hizi zitakuonyesha njia ya kufuata, lakini ukurasa wako utakuwa tofauti. Furahiya!

Hatua ya 1: Kusanya Vifaa

Kusanya Vifaa
Kusanya Vifaa

Utahitaji kuanza kuongeza rasilimali zako za programu. Utahitaji programu zifuatazo. Tumia miongozo yao kukusaidia kusakinisha… Sakinisha FirebugNi programu-jalizi ya Firefox Weka Python Nenda kwa: python.orgNenda kwa: python.orgSanikisha Moduli ya MechanizePata MechanizePata Mitambo Zana nyingine muhimu za Spidering: BeautifulSoup

Hatua ya 2: Tafuta Vichwa Vya Habari Muhimu Kuunda Kipindi

Buibui aliyebuniwa vizuri atapata ukurasa wa wavuti kana kwamba ni kivinjari kinachodhibitiwa na mwanadamu akiweka vidokezo juu ya asili ya kweli iliyofichwa. Sehemu ya mwingiliano kati ya vivinjari na seva hufanyika kupitia maombi ya GET na POST ambayo unaweza kupata kwenye vichwa vya habari (habari hii haionyeshwi sana kwenye kivinjari, lakini ni muhimu sana). Unaweza kuona habari hii kwa kubonyeza Ctrl I (katika firefox) kufungua dirisha la Maelezo ya Ukurasa. Ili kujibadilisha kama kivinjari kisicho na adabu lazima ujitambue ukitumia sifa zile zile. Ukijaribu kuingia kwenye chapisho na JavaScript iliyolemazwa kwenye kivinjari chako hautafika mbali sana kwani marekebisho yanafanywa kupitia javascript. Kwa hivyo kwa kuzingatia kuwa vivinjari vingi vya buibui havina wakalimani wa javascript itabidi tupate kwa kuingia kupitia njia mbadala. Wacha tuanze kwa kupata habari ya kichwa iliyotumwa kutoka kwa kivinjari unapobofya wasilisha. Ikiwa hii ingekuwa kiingilio cha kawaida cha kivinjari utatumia Mechanize kujaza fomu na bonyeza kuwasilisha. Fomu za kawaida za kuingia zimefungwa ndani ya lebo… na Mitambo itaweza kuwasilisha hii na kupigia kura ukurasa unaofuata bila shida. Kwa kuwa hatuna lebo ya fomu iliyokamilishwa, kazi ya kuwasilisha inashughulikiwa na javascript. Wacha tuangalie kazi ya kuwasilisha fomu ya umma. Ili kufanya hivyo, kwanza fungua ukurasa wa wavuti katika firefox na washa firebug kwa kubonyeza firefly kwenye kona ya chini ya mkono wa kulia. Kisha bonyeza kichupo cha hati, nakili nambari yote inayoonekana na ibandike kwenye programu yako ya uhariri wa maandishi unayopenda. Kisha unaweza kufuta nambari yote isipokuwa kazi ya kuwasilishaFomu. Huanza na kazi "submitForm (theform) {" na kila kitu kati ya hii na kazi zinazifunga bracket iliyosokotwa "}". Wakati wa kuchambua kazi hii mapema sana tunaona kuwa uthibitishaji mwingine hufanyika ukirudisha ubadilishaji uitwao xmldoc ambao umepigwa kama xml. Hii ni sifa muhimu ya AJAX imechagua seva na kurudisha hati fulani ya XML iliyo na mti wa habari. Node kikao_id kina kikao_id ikiwa uthibitishaji umefanikiwa, unaweza kusema hii kwa kuangalia nambari hii ndogo ya nambari: "ikiwa (kikao_id! = Batili) {// ingia imefanikiwa". Sasa tunataka kuzuia hii kidogo ya javascript kutupeleka mahali popote ili tuweze kuona kile kinachowekwa kwenye seva wakati wa uthibitishaji. Ili kufanya hivyo tunatoa maoni kutoka kwa windows yoyote inayoelekeza ambayo inaonekana kama hii: "window.location =…". Ili kutoa maoni haya ongeza ukata mara mbili mbele yao kama vile: "//window.location…" hii inazuia nambari kuendeshwa. Unaweza kupakua faili ya Javascript hapa chini ambayo ina mabadiliko haya tayari. Nakili na ubandike nakala hii ya kuhaririwa ya javascript kwenye koni ya windows upande wa kulia na bonyeza kukimbia. Hii inashughulikia kazi ya javascript tayari kwenye ukurasa na toleo letu jipya. Sasa unapojaza kitambulisho chako na bonyeza kuwasilisha unapaswa kuona POST na PATA habari ya kichwa kujaza koni, lakini hautaenda popote. Habari ya POST ni habari iliyopigwa kwa seva na kazi za AJAX, unataka kuwa mengi kama hii iwezekanavyo, nakili na ubandike habari hiyo kwenye daftari.

Hatua ya 3: Andaa Nambari

Kabla hatujaongeza vichwa vipya ambavyo tumepata wacha tuunde Nambari ya chatu ya kuingia ya templeti. Tunafanya hivyo kwa sababu mbili, kwanza kwa hivyo tuna sehemu inayofanya kazi ya kuongeza vitu vipya na ya pili ili uone jinsi unavyoweza kuingia kwenye ukurasa wa wavuti ambao sio AJAX-y. Fungua kijitabu au sawa, na unakili na ubandike zifuatazo. Ukimaliza ihifadhi kama jina la faili.py mahali pengine ambapo unaweza kupata. mfano wa kivinjari kupitia simu ya kazi ya Kivinjari;.set_handle_robots (Uongo) #Fungua ukurasa ambao unataka kuingia tobr.open ("https://pubmatic.com/04_betasignin.jsp") #Kwa sababu najua jina la fomu, ninaweza kuchagua fomu hiyo kwa jinabr.select_form ("login") # Kutumia majina ya vitu vya fomu ninaingiza majina ya fomu formbr ['email'] = "[email protected]" br ['password'] = "Asquid22" # br. () hutuma fomu na kuvuta ukurasa unaosababisha, unaunda mfano mpya wa kivinjari # jibu hapa chini lina matokeo ya ukurasa wa majibu = br.submit () # Hii itachapisha mwili wa ukurasa wa wavuti uliopokea # chapa majibu.soma ()

Hatua ya 4: Tuma Ishara Sahihi

Tuma Ishara Sahihi
Tuma Ishara Sahihi

Mitambo ina kazi rahisi kuongeza vichwa kwenye vichwa vya POST, hii itatuwezesha kuonekana kwenye kivinjari kilekile ulichotumia kufikia ukurasa mara ya kwanza. Fungua faili na vichwa ambavyo umepata ukitumia Firebug na uhariri faili hii ya maandishi ili ilingane. Badilisha kila kitu kwenye nukuu na kipengee sahihi kutoka kwa orodha ya kichwa: 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, picha / 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 " MUUNGANO = "weka-hai" CONTENT_TYPE = "programu / x-www-form-urlencoded" REFERER = "https://pubmatic.com/04_betasignin.jsp "CONTENT_LENGTH =" 60 "COOKIE =" utma = 103266945.1970108054.1210113004.12121040121210401212104012110101; KADUSERCOOKIE = EA2C3249-E822-456E-847A-1FF0D4085A85; utmz = 103266945.1210113004.1.1.utmccn = (moja kwa moja) | utmcsr = (moja kwa moja) utmcmd = (hakuna); no-cache "CACHE_CONTROL =" no-cache "Hii inaunda seti ya anuwai ambazo unaweza kutumia kuongezea kwa kichwa chetu Ingiza nambari hii: ("Kubali-Lugha", ACCEPT_LANGUAGE)] br.add_headers = [("Accept-Encoding", ACCEPT_ENCODING)] br.add_headers = [("Accept-Charset", ACCEPT_CHARSET)] br.add_header = [("Endelea Kuishi" ", KEEP_ALIVE)] br.add_headers = [(" Connection ", CONNECTION)] br.add_header = [(" Aina ya Maudhui ", CONTENT_TYPE)] br.add_header = [(" Referer ", REFERER)] br.add_header = [("Urefu wa Maudhui", CONTENT_LENGTH)] br.add_headers = [("Cookie", COOKIE)] br.add_headers = [("Pragma", PRAGMA)] br.add_headers = [("Cache-Control", CACHE_CONTROL)] Sasa tunapoita kazi wazi ukurasa vichwa vitatumwa kwa seva pia. kufungua ("https://pubmatic.com/04_betasignin.jsp")

Hatua ya 5: Vidakuzi vya Mitambo

Vidakuzi vya Mitambo
Vidakuzi vya Mitambo

Hatua hii ni kwa sababu mashine hutengeneza utunzaji wa kuki, lakini ni muhimu kujua kinachotokea:

Wakati fomu inawasilishwa una vichwa vya habari sawa kana kwamba umewasilisha kwa kutumia kazi ya javascript. Seva basi inathibitisha habari hii na hutoa kitambulisho cha kikao na kuihifadhi kwenye kuki ikiwa jina la mtumiaji na nywila ni sahihi. Habari njema ni kwamba Mitambo inakula kiotomatiki na hutengeneza kuki kwa hivyo hauitaji kuwa na wasiwasi juu ya kutuma na kupokea kuki. Kwa hivyo ukishaunda kitambulisho cha kikao kinachofanya kazi unaweza kuingiza sehemu tu ya wavuti.

Hatua ya 6: Ufunguo wa Moyo

Sasa kwa kuwa tumepata kitambulisho cha kikao na Mitambo imeihifadhi kwenye vidakuzi vyake tunaweza kufuata javascript kuona ni wapi tunahitaji kwenda. Kuangalia ndani ya "if (session_id! = Null) {// login imefanikiwa" kuona ni wapi unaweza kufanikiwa. Kuangalia nambari ya kuhamisha dirisha: "ikiwa (adurlbase.search (/pubmatic.com/)! = -1) {window.location =" https://pubmatic.com/05_homeloggedin.jsp "+"? V = "+ Math. Nasibu () * 10000; " tunaona kwamba tunahitaji kwenda kwenye wavuti iliyoko https://pubmatic.com/05_homeloggedin.jsp?v=nambari fulani ya nasibu. Kwa hivyo wacha tu tengeneze nambari bandia isiyo ya kawaida kuingia na kuunda mfano mpya wa kivinjari kusoma ukurasa uliofunguliwa hivi karibuni: response2 = br.open ("https://pubmatic.com/05_homeloggedin.jsp?v=2703") Na hiyo inapaswa iwe hivyo. Nambari yako sasa imekamilika, kwa kutumia vichwa sahihi na mashine ya kuki kidhibiti kuki tunaweza sasa kuingia ndani ya chapisho. Fungua kituo, pakia kifurushi cha chatu hapa chini na uingie mbali. Ili kufanya aina hii ya python2.5 na kisha njia ya faili kwenye faili ya.py.

Ilipendekeza: