„Python“

Prisijungimas prie svetainių naudojant „Python“

Prisijungimas prie svetainių naudojant „Python“
Prisijungimo funkcija yra svarbi šių dienų žiniatinklio programų funkcija. Ši funkcija padeda apsaugoti specialų turinį nuo svetainės nenaudotojų, taip pat naudojama nustatyti aukščiausios kokybės vartotojus. Todėl, jei ketinate žiniatinklį tvarkyti svetainę, galite susidurti su prisijungimo funkcija, jei turinys yra prieinamas tik registruotiems vartotojams.

Žiniatinklio sąveikos pamokos buvo aptartos praeityje, todėl ši pamoka apima tik aspektą, kaip patekti į svetaines prisijungiant naudojant kodą, o ne rankiniu būdu naudojant naršyklę.

Norint suprasti šią mokymo programą ir mokėti rašyti scenarijus prisijungiant prie svetainių, jums reikia šiek tiek suprasti HTML. Galbūt to nepakanka norint sukurti nuostabias svetaines, bet pakankamai, kad suprastumėte pagrindinio tinklalapio struktūrą.

Montavimas

Tai būtų daroma su „Requests“ ir „BeautifulSoup Python“ bibliotekomis. Be tų „Python“ bibliotekų, jums reikės geros naršyklės, tokios kaip „Google Chrome“ ar „Mozilla Firefox“, nes jos būtų svarbios pradinei analizei prieš rašant kodą.

„Requests“ ir „BeautifulSoup“ bibliotekas galima įdiegti naudojant komandą „pip“ iš terminalo, kaip parodyta žemiau:

„pip install“ užklausos
„pip“ įdiekite „BeautifulSoup4“

Norėdami patvirtinti diegimo sėkmę, suaktyvinkite interaktyvų „Python“ apvalkalą, kuris atliekamas įvedant tekstą pitonas į terminalą.

Tada importuokite abi bibliotekas:

importo užklausos
iš bs4 importuoti BeautifulSoup

Importuoti pavyksta, jei nėra klaidų.

Procesas

Norint prisijungti prie svetainės naudojant scenarijus, reikia žinoti HTML ir suprasti, kaip veikia internetas. Trumpai panagrinėkime, kaip veikia internetas.

Svetainės yra sudarytos iš dviejų pagrindinių dalių: kliento ir serverio pusės. Kliento pusė yra svetainės dalis, su kuria vartotojas sąveikauja, o serverio pusė yra svetainės dalis, kurioje vykdoma verslo logika ir kitos serverio operacijos, pavyzdžiui, prieiga prie duomenų bazės.

Kai bandote atidaryti svetainę naudodamiesi jos nuoroda, serverio pusėje pateikiate prašymą atgauti HTML failus ir kitus statinius failus, pvz., CSS ir „JavaScript“. Ši užklausa vadinama GET užklausa. Tačiau kai pildote formą, įkeliate daugialypės terpės failą ar dokumentą, kuriate įrašą ir spustelėjame, tarkime, mygtuką pateikti, jūs siunčiate informaciją į serverio pusę. Ši užklausa vadinama POST užklausa.

Rašant scenarijų būtų svarbu suprasti šias dvi sąvokas.

Apžiūrint svetainę

Norėdami praktikuoti šio straipsnio koncepcijas, mes naudosime svetainę „Quotes To Scrape“.

Norint prisijungti prie svetainių, reikia pateikti tokią informaciją kaip vartotojo vardas ir slaptažodis.

Tačiau kadangi ši svetainė yra tik naudojama kaip idėjos įrodymas, viskas gali būti. Todėl mes naudotume administratorius kaip vartotojo vardą ir 12345 kaip slaptažodį.

Pirma, svarbu peržiūrėti puslapio šaltinį, nes tai padėtų apžvelgti tinklalapio struktūrą. Tai galima padaryti dešiniuoju pelės mygtuku spustelėjus tinklalapį ir spustelėjus „Peržiūrėti puslapio šaltinį“. Tada patikrinsite prisijungimo formą. Tai padarysite dešiniuoju pelės mygtuku spustelėdami vieną iš prisijungimo laukelių ir spustelėdami Tikrinti elementą. Apie tikrinimo elementą turėtumėte pamatyti įvestis žymos ir tada tėvas forma žymėti kažkur virš jo. Tai rodo, kad prisijungimai iš esmės yra būties formos POSTpateko į serverio svetainės pusę.

Dabar atkreipkite dėmesį į vardas vartotojo vardo ir slaptažodžio langelių įvesties žymų atributas, jų prireiks rašant kodą. Šioje svetainėje vardas vartotojo vardo ir slaptažodžio atributas yra Vartotojo vardas ir Slaptažodis atitinkamai.

Toliau turime žinoti, ar yra kitų parametrų, kurie būtų svarbūs prisijungiant. Greitai paaiškinkime tai. Siekiant padidinti svetainių saugumą, paprastai sukuriami žetonai, kad būtų išvengta „Cross Site Forgery“ atakų.

Todėl, jei šie žetonai nebus pridėti prie POST užklausos, prisijungti nepavyks. Taigi, kaip mes žinome apie tokius parametrus?

Turėtume naudoti skirtuką Tinklas. Norėdami gauti šį skirtuką „Google Chrome“ arba „Mozilla Firefox“, atidarykite „Developer Tools“ ir spustelėkite skirtuką Network.

Kai būsite tinklo skirtuke, pabandykite atnaujinti dabartinį puslapį ir pastebėsite, kad gaunamos užklausos. Bandydami prisijungti, turėtumėte pabandyti atsiųsti POST užklausas.

Štai ką darytume toliau, o atidarę skirtuką Tinklas. Įveskite prisijungimo duomenis ir pabandykite prisijungti. Pirmoji užklausa, kurią pamatysite, turėtų būti POST užklausa.

 

Spustelėkite POST užklausą ir peržiūrėkite formos parametrus. Jūs pastebėtumėte, kad svetainėje yra csrf_token parametras su verte. Ši vertė yra dinaminė reikšmė, todėl tokias reikšmes turėtume užfiksuoti naudodami GAUTI paklauskite pirmiausia prieš naudodami POST prašymą.

Tikriausiai galite nematyti kitų svetainių, kuriose dirbtumėte csrf_token bet gali būti ir kitų dinamiškai generuojamų žetonų. Laikui bėgant, jūs geriau žinosite parametrus, kurie iš tikrųjų yra svarbūs bandant prisijungti.

Kodas

Pirma, norėdami pasiekti prieigą prie prisijungimo puslapio puslapio turinio, turime naudoti užklausas ir „BeautifulSoup“.

iš užklausų importavimo sesijos
iš „bs4“ importuokite „BeautifulSoup“ kaip bs
 
su sesija () kaip s:
svetainė = s.gauti ("http: // citatos.nusikrapštyti.com / login ")
spausdinti (svetainė.turinys)

Tai atspausdins prisijungimo puslapio turinį prieš prisijungiant ir ieškant raktinio žodžio „Prisijungti“. Raktinis žodis bus rastas puslapio turinyje, rodantis, kad mes dar neprisijungsime.

Tada mes ieškotume csrf_token raktinis žodis, kuris buvo nustatytas kaip vienas iš parametrų, kai anksčiau buvo naudojamas tinklo skirtukas. Jei raktinis žodis rodo atitiktį su įvestis žymą, tada vertę galima išgauti kiekvieną kartą paleidus scenarijų naudojant „BeautifulSoup“.

iš užklausų importavimo sesijos
iš „bs4“ importuokite „BeautifulSoup“ kaip bs
 
su sesija () kaip s:
svetainė = s.gauti ("http: // citatos.nusikrapštyti.com / login ")
bs_content = bs (svetainė.turinys “, html.analizatorius ")
žetonas = bs_content.rasti ("įvestis", "vardas": "csrf_token") ["vertė"]
login_data = "vartotojo vardas": "admin", "slaptažodis": "12345", "csrf_token": žetonas
s.paštu („http: // citatos.nusikrapštyti.com / login ", login_data)
home_page = s.gauti ("http: // citatos.nusikrapštyti.com ")
spausdinti (home_page.turinys)

Tai atspausdins puslapio turinį prisijungus ir jei ieškosite „Atsijungti“ raktinio žodžio. Raktinis žodis bus rastas puslapio turinyje, parodydamas, kad mums pavyko sėkmingai prisijungti.

Pažvelkime į kiekvieną kodo eilutę.

iš užklausų importavimo sesijos
iš „bs4“ importuokite „BeautifulSoup“ kaip bs

Aukščiau nurodytos kodo eilutės naudojamos importuoti seanso objektą iš užklausų bibliotekos ir „BeautifulSoup“ objektą iš bibliotekos „bs4“ naudojant slapyvardį bs.

su sesija () kaip s:

Užklausų seansas naudojamas, kai ketinate išlaikyti užklausos kontekstą, todėl slapukus ir visą užklausos seanso informaciją galima išsaugoti.

bs_content = bs (svetainė.turinys “, html.analizatorius ")
žetonas = bs_content.rasti ("įvestis", "vardas": "csrf_token") ["vertė"]

Šis kodas čia naudoja „BeautifulSoup“ biblioteką, todėl csrf_token galima išgauti iš tinklalapio ir paskui priskirti prie žetono kintamojo. Galite sužinoti apie duomenų išskyrimą iš mazgų naudodami „BeautifulSoup“.

login_data = "vartotojo vardas": "admin", "slaptažodis": "12345", "csrf_token": žetonas
s.įrašas („http: // citatos.nusikrapštyti.com / login ", login_data)

Kodas sukuria parametrų, kurie bus naudojami prisijungiant, žodyną. Žodynų raktai yra vardas įvesties žymų atributai ir reikšmės yra vertė įvesties žymų atributus.

The paštu metodas naudojamas siųsti užklausą su parametrais ir prisijungti.

home_page = s.gauti ("http: // citatos.nusikrapštyti.com ")
spausdinti (home_page.turinys)

Po prisijungimo šios aukščiau nurodytos kodo eilutės tiesiog išskiria informaciją iš puslapio, kad parodytų, jog prisijungimas buvo sėkmingas.

Išvada

Prisijungti prie svetainių naudojant „Python“ procesas yra gana lengvas, tačiau svetainių sąranka nėra vienoda, todėl kai kuriose svetainėse būtų sunkiau prisijungti nei kitose. Norint įveikti bet kokius prisijungimo iššūkius, galima padaryti dar daugiau.

Svarbiausia visame pasaulyje yra HTML, užklausų, „BeautifulSoup“ žinojimas ir galimybė suprasti informaciją, gautą iš jūsų žiniatinklio naršyklės kūrėjų įrankių skirtuko „Tinklas“.

5 geriausios žaidimų fiksavimo kortos
Visi mes matėme ir pamėgome srautinius žaidimus „YouTube“. „PewDiePie“, „Jakesepticye“ ir „Markiplier“ yra tik vieni iš geriausių žaidėjų, kurie uždir...
Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...
Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...