Агуулгын хүснэгт:

Ajax вэбсайтыг асинхрон нэвтрэх маягтаар аалзлах: 6 алхам (зурагтай)
Ajax вэбсайтыг асинхрон нэвтрэх маягтаар аалзлах: 6 алхам (зурагтай)

Видео: Ajax вэбсайтыг асинхрон нэвтрэх маягтаар аалзлах: 6 алхам (зурагтай)

Видео: Ajax вэбсайтыг асинхрон нэвтрэх маягтаар аалзлах: 6 алхам (зурагтай)
Видео: AJAX. Настройка и отправка AJAX запросов 2024, Долдугаар сарын
Anonim
Асинхрон нэвтрэх маягтаар Ajax вэбсайтыг аалзлах
Асинхрон нэвтрэх маягтаар Ajax вэбсайтыг аалзлах

Асуудал: Аалзны хэрэгсэл нь AJAX нэвтрэлтийг баталгаажуулахыг зөвшөөрдөггүй.

Энэхүү зааварчилгаа нь Python болон Mechanize нэртэй модулийг ашиглан AJAX маягтаар хэрхэн нэвтрэхийг танд үзүүлэх болно. Аалз бол вэб автоматжуулах програм бөгөөд хүмүүс онлайнаар мэдээлэл цуглуулах түгээмэл арга болж байна. Тэд эргэн тойрон дахь хамгийн хүчирхэг вэб компаниудыг дэмжихийн тулд үнэт материал цуглуулдаг. Бусад нь мөлхөж, шийдвэр гаргах чадварыг сайжруулахын тулд тодорхой өгөгдлийн багц цуглуулдаг, эсвэл одоогоор "юу" байгааг олж мэдэх эсвэл хамгийн хямд аялалын маршрутыг хайж олох боломжтой байдаг. Аалз (вэб мөлхөгч, вэббот эсвэл дэлгэц хусах) нь HTML goop -ийг ухаалаг өгөгдлийн зарим хэсэг болгон хувиргахад маш сайн байдаг, гэхдээ JavaScript болон күүкиг идэвхжүүлсэн сессүүдтэй AJAX -ийг идэвхжүүлсэн вэб хуудсуудын хувьд ердийнхөөрөө хөтлөх боломжгүй байдаг. аалзны хэрэгслийн багц. Энэхүү зааварчилгаанд бид pubmatic.com дээрх өөрийн гишүүн хуудсандаа хандах болно. Эдгээр алхамууд нь танд дагаж мөрдөх аргыг харуулах боловч таны хуудас өөр байх болно. Хөгжилтэй байгаарай!

Алхам 1: Материалыг цуглуулах

Материал цуглуулах
Материал цуглуулах

Та програмчлалын эх үүсвэрээ нэмж эхлэх хэрэгтэй болно. Танд дараах програмууд хэрэгтэй болно. Эдгээрийг суулгахад туслах гарын авлагаа ашиглаарай … Firebug -ийг суулгаарай Энэ бол Firefox -ийн нэмэлт хэрэгсэл Python -ийг суулгана уу: python.org руу очно уу: python.org руу ороорой Механикжуулах модулийг суулгаарай Механикжуулаарай Механикжуулаарай Бусад хэрэгтэй аалзны хэрэгслүүд: BeautifulSoup

Алхам 2: Сесс үүсгэхэд шаардлагатай толгой хэсгүүдийг олоорой

Сайн боловсруулсан аалз нь жинхэнэ гарал үүслийнхээ талаар нууц мэдээллийг хадгалдаг хүн хөтөч хөтөч шиг вэб хуудсанд нэвтрэх болно. Хөтөч ба сервер хоорондын харилцан үйлчлэлийн нэг хэсэг нь толгойноос олж болох GET болон POST хүсэлтээр дамждаг (энэ мэдээлэл хөтөч дээр бараг харагддаггүй, гэхдээ маш чухал байдаг). Та энэ мэдээллийг Ctrl I (Firefox дээр) дарж Хуудасны мэдээлэл цонхыг нээх замаар үзэх боломжтой. Өөрийгөө зөөлөн хөтөч гэж нэрлэхийн тулд та ижил итгэмжлэл ашиглан өөрийгөө таниулах ёстой. Хэрэв та өөрийн хөтөч дээр JavaScript -ийг идэвхгүй болгосон пабматик руу нэвтрэхийг оролдсон бол дахин чиглүүлэлтийг javascript -ээр дамжуулан хийдэг тул тийм ч хол явахгүй. Ихэнх аалз хөтчүүд JavaScript орчуулагчгүй байдаг тул бид өөр замаар нэвтрэх замаар нэвтрэх шаардлагатай болно. Илгээх товчлуурыг дарахад хөтөчөөс илгээсэн толгойн мэдээллийг авахаас эхэлье. Хэрэв энэ нь ердийн хөтчийн нэвтрэлт байсан бол та маягтыг бөглөхийн тулд Mechanize -ийг ашиглаж, илгээх дээр дарна уу. Нэвтрэх ердийн хэлбэрийг… шошгонд багтаасан бөгөөд Mechanize үүнийг илгээж, дараагийн хуудсыг ямар ч асуудалгүйгээр санал болгох боломжтой болно. Бидэнд бөглөсөн маягтын шошго байхгүй тул илгээх функцийг javascript ашиглан гүйцэтгэж байна. Pubmatic's submitForm функцийг шалгая. Үүнийг хийхийн тулд эхлээд вэб хуудсыг firefox дээр нээгээд баруун доод буланд байгаа галт хорхойг дарж firebug -г асаана уу. Дараа нь скриптийн таб дээр дарж гарч ирэх бүх кодыг хуулж аваад дуртай текст засварлах програм дээрээ оруулна уу. Дараа нь submitForm функцээс бусад бүх кодыг устгах боломжтой. Энэ нь "submitForm (theform) {" функц болон энэ хооронд болон буржгар хаалт хаах функцуудын хоорондох бүх зүйл "}" -ээс эхэлдэг. Энэ функцийг анхан шатны дүн шинжилгээ хийхэд зарим баталгаажуулалт нь xmldoc гэж нэрлэгддэг хувьсагчийг буцааж авчирч байгааг анзаардаг. Энэ бол серверээс санал асуулга авч, мэдээллийн мод агуулсан XML баримт бичгийг буцааж авчирсан AJAX -ийн гол онцлог юм. Сессия_ид зангилаа нь баталгаажуулалт амжилттай болсон тохиолдолд session_id -ийг агуулдаг бол үүнийг дараах кодын дагуу харна уу: "if (session_id! = Null) {// login амжилттай". Одоо бид энэ жаахан javascript -ийг биднийг хаашаа ч хамаагүй авч явахаас урьдчилан сэргийлэхийг хүсч байна, ингэснээр баталгаажуулалтын явцад сервер дээр юу байршуулж байгааг харах боломжтой болно. Үүнийг хийхийн тулд бид "цонх.хайршил = …" гэсэн хэлбэртэй байгаа цонх дахин чиглүүлэлтүүдийг тайлбарлаж өгдөг. Үүнийг тайлбарлахын тулд тэдний өмнө давхар ташуу зураас нэмж оруулаарай: "//window.location…" энэ нь кодыг ажиллуулахаас сэргийлнэ. Та доорх Javascript файлыг татаж авч болох бөгөөд эдгээр засварыг аль хэдийн хийсэн байгаа бөгөөд энэ засварласан javascript -ийн хэсгийг консолын цонхны баруун талд хуулж аваад ажиллуулах дээр дарна уу. Энэ нь манай шинэ хувилбартай хуудсан дээр байгаа JavaScript функцийг хүчингүй болгодог. Итгэмжлэх жуух бичгээ бөглөж, илгээх товчийг дарахад POST болон GET толгойн мэдээлэл консолыг бөглөх болно, гэхдээ та хаашаа ч явахгүй болно. Энэ мэдээллийг аль болох хуулж, тэмдэглэлийн дэвтэрт буулгана уу.

Алхам 3: Кодыг бэлтгэх

Шинэ толгойнуудыг нэмэхээсээ өмнө бид нэвтрэх python кодыг Механикжуулах загварыг үүсгэцгээе. Бид үүнийг хоёр шалтгаанаар хийж байгаа бөгөөд нэгдүгээрт бидэнд шинэ зүйл нэмж оруулах бүрэлдэхүүн хэсэг байгаа бөгөөд ингэснээр та ердийн AJAX-y биш вэб хуудсанд хэрхэн нэвтрэхийг харах болно. дагаж байна. Үүнийг хийж дууссаны дараа хаа нэгтээ олж болно. 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 = "keep-live" CONTENT_TYPE = "application/x-www-form-urlencoded" REFERER = "https://pubmatic.com/04_betasignin.jsp"CONTENT_LENGTH =" 60 "COOKIE =" utma = 103266945.19701080512129101085121291010851212910108512129101085121291010851212910108412121010841212101084121210108412121010841212101084121010412710108412101040071277777777777777777 "") REFERER = "https://pubmatic.com/04_betasignin.; KADUSERCOOKIE = EA2C3249-E822-456E-847A-1FF0D4085A85; utmz = 103266945.1210113004.1.1.utmccn = (шууд) | utmcsr = (шууд) | utmcmd = (аль нь ч биш); JSESSBEE8E3C3C2C33 no-cache "CACHE_CONTROL =" no-cache "Энэ нь хувьсагчуудын багцыг үүсгэж, дараа нь та бидний толгой хэсэгт нэмэх боломжтой. энэ кодыг оруулбал: br.add_header = [("Host", HOST)] br.add_headers = [("Хэрэглэгч-агент", USER_AGENT)] br.add_headers = [("Зөвшөөрөх", ХҮЛЭЭН хүлээн авах)] br.add_header = [("Хүлээн зөвшөөрөх хэл", ACCEPT_LANGUAGE)] br.add_headers = [("Хүлээн авах-кодлох", ACCEPT_ENCODING)] br.add_headers = [("Хүлээн авах-Charset", ACCEPT_CHARSET)] br.add_header = [("Амьд байлгах" ", KEEP_ALIVE)] br.add_headers = [(" Холболт ", ХОЛБОО)] br.add_header = [(" Агуулгын төрөл ", CONTENT_TYPE)] br.add_header = [(" Лавлагаа ", REFERER)] br.add_header = [("Агуулгын урт", CONTENT_LENGTH)] br.add_headers = [("Cookie", COOKIE)] br.add_headers = [("Прагма", PRAGMA)] br.add_headers = [("Cache-Control", CACHE_CONTROL))] Одоо бид хуудсыг нээлттэй функц гэж нэрлэх үед толгойнуудыг сервер рүү илгээх болно. br.open ("https://pubmatic.com/04_betasignin.jsp")

Алхам 5: Механикжуулсан жигнэмэг

Механикжуулсан жигнэмэг
Механикжуулсан жигнэмэг

Механикжуулалт нь күүкитэй ажиллах автоматжуулалттай холбоотой боловч энэ нь юу болж байгааг мэдэх нь чухал юм.

Маягтыг илгээх үед та javascript функцийг ашиглан илгээсэн мэт зөв толгойтой болно. Дараа нь сервер энэ мэдээллийг баталгаажуулж, хэрэглэгчийн нэр, нууц үг зөв байвал сессийн ID үүсгэж, күүки дээр хадгална. Сайн мэдээ бол Mechanize нь жигнэмэгийг автоматаар идэж, дахин боловсруулдаг тул та күүкийг илгээх, хүлээж авах талаар санаа зовох хэрэггүй болно. Тиймээс та ажиллаж буй сесс ID -г үүсгэсний дараа вэбсайтын зөвхөн гишүүдийн хэсэгт орж болно.

Алхам 6: Зүрхний түлхүүр

Одоо бид сессийн ID -г олж аваад Mechanize үүнийг күүки болгон хадгалсан тул бид хаашаа явах ёстойгоо харахын тулд 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= зарим санамсаргүй тоо дээр байрлах вэбсайт руу орох шаардлагатай байгааг харж байна. Тиймээс хуурамч санамсаргүй тоог оруулаад шинээр нээгдсэн хуудсыг уншихын тулд шинэ хөтөчийн жишээ үүсгээрэй: answer2 = br.open ("https://pubmatic.com/05_homeloggedin.jsp?v=2703") Тэгээд тэгэх ёстой. бай Тохирох толгой, күүки зохицуулагчийг ашигласнаар бид одоо pubmatic -ийн дотоод хэсэгт нэвтэрч орох боломжтой боллоо. Үүнийг хийхийн тулд python2.5 гэж бичээд дараа нь.py файл руу орох замыг оруулна уу.

Зөвлөмж болгож буй: