Სარჩევი:

აიაქსის ვებსაიტის გაფრენა ასინქრონული შესვლის ფორმით: 6 ნაბიჯი (სურათებით)
აიაქსის ვებსაიტის გაფრენა ასინქრონული შესვლის ფორმით: 6 ნაბიჯი (სურათებით)

ვიდეო: აიაქსის ვებსაიტის გაფრენა ასინქრონული შესვლის ფორმით: 6 ნაბიჯი (სურათებით)

ვიდეო: აიაქსის ვებსაიტის გაფრენა ასინქრონული შესვლის ფორმით: 6 ნაბიჯი (სურათებით)
ვიდეო: Knight Geography Time NO.6 Netherlands 骑士地理时间第6期荷兰 2024, დეკემბერი
Anonim
აიაქსის ვებსაიტის გაფრენა ასინქრონული შესვლის ფორმით
აიაქსის ვებსაიტის გაფრენა ასინქრონული შესვლის ფორმით

პრობლემა: Spidering ინსტრუმენტები არ იძლევა AJAX ავტორიზაციის ავტორიზაციას.

ეს ინსტრუქცია გაჩვენებთ როგორ შეხვიდეთ AJAX ფორმაში პითონის და მოდულის სახელწოდებით მექანიზირება. ობობები არის ვებ ავტომატიზაციის პროგრამები, რომლებიც სულ უფრო პოპულარული ხდება ხალხისთვის მონაცემების ონლაინ შეგროვებისთვის. ისინი შემოდიან ქსელში და იკრიბებიან ძვირფასი მასალები, რათა გააძლიერონ გარშემო არსებული ყველაზე მძლავრი ვებ კომპანიები. სხვები სეირნობენ და აგროვებენ მონაცემების კონკრეტულ ჯგუფს გადაწყვეტილების მიღების გასაუმჯობესებლად, ან იმის დასკვნამდე, თუ რა არის "შიგნით", ან იპოვონ ყველაზე იაფი სამგზავრო მარშრუტები. ობობები (ვებ - გამომძიებლები, ვებ ბოტები, ან ეკრანის სკრაპერები) შესანიშნავია HTML გუპის ინტელექტუალური მონაცემების გარეგნულად გადაქცევისთვის, მაგრამ ჩვენ გვაქვს პრობლემა, როდესაც საქმე ეხება AJAX ჩართულ ვებ გვერდებს, რომლებსაც აქვთ JavaScript და cookie ჩართული სესიები, რომლებიც არ არიან ნავიგაცია ნორმალურთან ნაკერი spidering ინსტრუმენტები. ამ სასწავლო ინსტრუქციაში ჩვენ შევდივართ ჩვენს საკუთარ წევრ გვერდზე pubmatic.com– ზე. ეს ნაბიჯები გაჩვენებთ მეთოდს, რომელიც უნდა დაიცვას, მაგრამ თქვენი გვერდი განსხვავებული იქნება. Გაერთე!

ნაბიჯი 1: მასალების შეგროვება

შეაგროვეთ მასალები
შეაგროვეთ მასალები

თქვენ უნდა დაიწყოთ თქვენი პროგრამირების რესურსების დამატება. თქვენ დაგჭირდებათ შემდეგი პროგრამები. გამოიყენეთ მათი გზამკვლევი, რომ დაგეხმაროთ მათ დაყენებაში… დააინსტალირეთ Firebug ეს არის Firefox დამატება დააინსტალირეთ Python გადადით: python.org გადადით: python.org დააინსტალირეთ მექანიზირებული მოდული მიიღეთ მექანიზირებული მიიღეთ მექანიზირებული სხვა სასარგებლო Spidering ინსტრუმენტები: BeautifulSoup

ნაბიჯი 2: იპოვეთ სათაურები, რომლებიც საჭიროა სესიის შესაქმნელად

კარგად შემუშავებული ობობა შევა ვებგვერდზე, თითქოს ბრაუზერი იყოს, რომელსაც ადამიანი აკონტროლებს და აჩვენებს მის ნამდვილ წარმომავლობას. ბრაუზერებსა და სერვერებს შორის ურთიერთქმედების ნაწილი ხდება GET და POST მოთხოვნების საშუალებით, რომელთა ნახვა შეგიძლიათ სათაურებში (ეს ინფორმაცია იშვიათად არის ნაჩვენები ბრაუზერში, მაგრამ ძალიან მნიშვნელოვანია). თქვენ შეგიძლიათ ნახოთ ეს ინფორმაცია Ctrl I (firefox– ში) დაჭერით, რათა გახსნათ გვერდის ინფორმაციის ფანჯარა. შენიღბვისთვის, როგორც ზომიერი მოვლითი ბრაუზერი, უნდა ამოიცნო საკუთარი თავი იმავე სერთიფიკატების გამოყენებით. თუ თქვენ ცდილობდით შესულიყავით საჯაროში JavaScript– ით გამორთული თქვენს ბრაუზერში, თქვენ შორს ვერ წახვალთ, რადგან გადამისამართებები ხდება javascript– ის საშუალებით. ასე რომ, იმის გათვალისწინებით, რომ ობობას ბრაუზერების უმეტესობას არ აქვს javascript ინტერპრეტატორი, ჩვენ მოგვიწევს შესვლა ალტერნატიული მარშრუტით. დავიწყოთ ბრაუზერიდან გაგზავნილი სათაურის ინფორმაციის გაგზავნით, როდესაც თქვენ დააწკაპუნებთ გაგზავნაზე. ეს რომ იყოს ჩვეულებრივი ბრაუზერის ავტორიზაცია, თქვენ გამოიყენებთ მექანიზირებას ფორმის შესავსებად და დააჭირეთ გაგზავნას. ნორმალური შესვლის ფორმები მოთავსებულია… tag- ში და Mechanize შეძლებს ამის წარდგენას და გამოკითხვის შემდეგ გვერდს უპრობლემოდ. ვინაიდან ჩვენ არ გვაქვს დასრულებული ფორმის ტეგი, გაგზავნის ფუნქციას ამუშავებს javascript. მოდით შევამოწმოთ pubmatic's submitForm ფუნქცია. ამისათვის, ჯერ გახსენით ვებ გვერდი firefox– ში და ჩართეთ firebug ქვედა ციმციმის დაჭერით ქვედა მარჯვენა კუთხეში. შემდეგ დააწკაპუნეთ სკრიპტის ჩანართზე, დააკოპირეთ ყველა ის კოდი, რომელიც გამოჩნდება და ჩასვით თქვენს საყვარელ პროგრამულ ტექსტში. ამის შემდეგ შეგიძლიათ წაშალოთ ყველა კოდი, გარდა ფუნქციის submitForm. ის იწყება ფუნქციით "submitForm (theform) {" და ყველაფერი შორის ამ და ფუნქციების დახურვის curly bracket "}". ამ ფუნქციის ძალიან პრიმიტიულად გაანალიზებისას ჩვენ ვამჩნევთ, რომ რაღაც ავთენტიფიკაცია ხდება ცვლადის სახელწოდებით xmldoc, რომელიც გაანალიზებულია როგორც xml. ეს არის 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-*-#დაიწყეთ თქვენი მოდულის იმპორტით: მექანიზირებული იმპორტიდან ბრაუზერი#შექმენით თქვენი ბრაუზერის მაგალითი ბრაუზერის () ფუნქციის გამოძახებით; br = Browser ()#დააყენეთ ბრაუზერი ისე, რომ ის იგნორირებას უკეთებს ობობებს. ტექსტი მოითხოვს#გააკეთეთ ეს ფრთხილად, თუ ვებგვერდს არ მოსწონს ობობები, ისინი შეიძლება დაარღვიოს, რომ იქ გიპოვონ.set_handle_robots (ყალბი) #გახსენით გვერდი, რომელშიც გსურთ შესვლა ("შესვლა")#ფორმის ელემენტების სახელების გამოყენებით ჩავსვამ ფორმის ელემენტების სახელებს br ['email'] = "[email protected]" br ['password'] = "Asquid22"#br.submit () აგზავნის ფორმას და გაიყვანს შედეგად მიღებულ გვერდს, თქვენ ქმნით ბრაუზერის ახალ მაგალითს#პასუხი ქვემოთ შეიცავს შედეგად მიღებული გვერდს

ნაბიჯი 4: გაგზავნეთ სწორი სიგნალები

გაგზავნეთ სწორი სიგნალები
გაგზავნეთ სწორი სიგნალები

მექანიზირებას აქვს მარტივი ფუნქცია სათაურების დამატება 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-ფორმა urlencoded" REFERER = "https://pubmatic.com/04_betasignin.jsp"CONTENT_LENGTH =" 60 "ხელნაკეთი =" utma = 103266945.1970108054.1210113004.1212104087.1212791201.20; KADUSERCOOKIE = EA2C3249-E822-456E-847A-1FF0D4085A85; utmz = 103266945.1210113004.1. არა-ქეში "CACHE_CONTROL =" არა-ქეში "ეს ქმნის ცვლადების ერთობლიობას, რომელიც შეგიძლიათ გამოიყენოთ სათაურში ჩვენთვის დასამატებლად ამ კოდში: br.add_header = [("მასპინძელი", HOST)] br.add_headers = [("მომხმარებელი-აგენტი", USER_AGENT)] br.add_headers = [("მიღება", ACCEPT)] 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 ", KEEP_ALIVE)] br.add_headers = [(" კავშირი ", CONNECTION)] 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: მექანიზებული ნაჭდევები

მექანიზებული ნაჭდევები
მექანიზებული ნაჭდევები

ეს ნაბიჯი იმიტომ ხდება, რომ მექანიზირებულია ავტომატიზირებული ქუქი -ფაილების დამუშავება, მაგრამ მნიშვნელოვანია იცოდეთ რა ხდება:

ფორმის წარდგენისას თქვენ გაქვთ სწორი სათაურები, თითქოს წარადგინეთ javascript ფუნქციის გამოყენებით. შემდეგ სერვერი ადასტურებს ამ ინფორმაციას და ქმნის სესიის ID- ს და ინახავს მას ქუქი -ფაილში, თუ მომხმარებლის სახელი და პაროლი სწორია. კარგი ამბავი ის არის, რომ მექანიზირებული ავტომატურად ჭამს და აბრუნებს ქუქი -ფაილებს, ასე რომ თქვენ არ გჭირდებათ ინერვიულოთ ქუქი -ფაილების გაგზავნისა და მიღების შესახებ. ასე რომ, მას შემდეგ რაც შექმნით სესიის ID, რომელიც მუშაობს, შეგიძლიათ შეიყვანოთ ვებგვერდის მხოლოდ წევრების განყოფილება.

ნაბიჯი 6: გულის გასაღები

ახლა, როდესაც ჩვენ შევიძინეთ სესიის ID და მექანიზირებული შევინახეთ ის ქუქი -ჩანაწერებში, ჩვენ შეგვიძლია მივყვეთ javascript- ს, რომ ნახოთ სად უნდა წავიდეთ. ეძებს შიგნით "if (session_id! = Null) {// შესვლა წარმატებულია", რათა ნახო სად წავიდე წარმატებაზე. ფანჯრის გადაადგილების კოდის დათვალიერება: "if (adurlbase.search (/pubmatic.com/)! = -1) {window.location =" https://pubmatic.com/05_homeloggedin.jsp " +"? V = " + მათემატიკა. შემთხვევითი ()*10000; " ჩვენ ვხედავთ, რომ ჩვენ უნდა წავიდეთ ვებგვერდზე, რომელიც მდებარეობს https://pubmatic.com/05_homeloggedin.jsp?v= ზოგიერთი შემთხვევითი ნომერი. მოდით შევქმნათ ყალბი შემთხვევითი ნომერი შესასვლელად და შევქმნათ ბრაუზერის ახალი მაგალითი ახლად გახსნილი გვერდის წასაკითხად: respond2 = br.open ("https://pubmatic.com/05_homeloggedin.jsp?v=2703") და ეს უნდა იყოს თქვენი კოდი ახლა დასრულებულია, სათანადო სათაურების გამოყენებით და ქუქი -ფაილების დამმუშავებლის მექანიზმით, ჩვენ შეგვიძლია მივაღწიოთ pubmatic- ის შიდა ნაწილს. გახსენით ტერმინალი, ჩატვირთეთ პითონის პაკეტი ქვემოთ და შედით სისტემაში. ამისათვის გააკეთეთ ტიპი python2.5 და შემდეგ filepath to.py ფაილი.

გირჩევთ: