Piton

Webhelyek bejelentkezése a Python használatával

Webhelyek bejelentkezése a Python használatával
A bejelentkezési funkció fontos funkció a mai webes alkalmazásokban. Ez a funkció segít megtartani a webhely nem felhasználóitól származó speciális tartalmat, és a prémium felhasználók azonosítására is szolgál. Ezért, ha webes webhelyet kíván kaparni, akkor találkozhat a bejelentkezési funkcióval, ha a tartalom csak regisztrált felhasználók számára elérhető.

A webes lekaparási oktatóanyagok a múltban foglalkoztak, ezért ez az oktatóanyag csak a weblapokhoz való hozzáférés aspektusát fedi le a kóddal történő bejelentkezéssel, ahelyett, hogy a böngésző segítségével kézzel végezné.

Ahhoz, hogy megértse ezt az oktatóanyagot, és szkripteket tudjon írni a weboldalakba történő bejelentkezéshez, szüksége van a HTML ismeretére. Talán nem elég ahhoz, hogy fantasztikus weboldalakat készítsen, de elég ahhoz, hogy megértsük az alap weboldal struktúráját.

Telepítés

Ezt a Requests és a BeautifulSoup Python könyvtárakkal lehetne megtenni. Ezeket a Python könyvtárakat leszámítva szükséged lesz egy jó böngészőre, például a Google Chrome-ra vagy a Mozilla Firefoxra, mivel ezek fontosak lennének a kezdeti elemzéshez a kód írása előtt.

A Requests és a BeautifulSoup könyvtárak a pip paranccsal telepíthetők a terminálról, az alábbiak szerint:

pip telepítési kérelmek
pip telepítse a BeautifulSoup4-et

A telepítés sikerességének megerősítéséhez aktiválja a Python interaktív shelljét, amelyet gépeléssel végeznek piton a terminálba.

Ezután importálja mindkét könyvtárat:

importkérések
a bs4-ből a BeautifulSoup importálása

Az importálás sikeres, ha nincsenek hibák.

A folyamat

A szkriptekkel rendelkező webhelyre való bejelentkezéshez HTML-ismeretekre és a web működésének ötletére van szükség. Vizsgáljuk meg röviden a web működését.

A weboldalak két fő részből állnak, az ügyféloldali és a szerveroldalból. Az ügyféloldali egy webhelyrész, amellyel a felhasználó interakcióba lép, míg a kiszolgálóoldali a webhelyrész, ahol üzleti logikát és egyéb kiszolgálói műveleteket hajtanak végre, például az adatbázis elérését.

Amikor megpróbál megnyitni egy webhelyet a linkjén keresztül, akkor a szerveroldalra kéri a HTML-fájlok és más statikus fájlok, például CSS és JavaScript beolvasását. Ez a kérés GET-kérelem néven ismert. Ha azonban űrlapot tölt be, médiafájlt vagy dokumentumot tölt fel, hozzászólást készít és kattintson a Mondjuk elküldés gombra, akkor információkat küld a szerver oldalára. Ez a kérés POST kérés néven ismert.

A forgatókönyv írásakor fontos lenne megérteni ezt a két fogalmat.

A weboldal ellenőrzése

A cikk koncepcióinak gyakorlásához a Quotes To Scrape webhelyet használnánk.

Webhelyekbe történő bejelentkezéshez olyan információkra van szükség, mint a felhasználónév és a jelszó.

Mivel azonban ezt a weboldalt csak a koncepció bizonyítékaként használják, bármi megy. Ezért használnánk admin mint a felhasználónév és 12345 mint jelszó.

Először is fontos megnézni az oldal forrását, mivel ez áttekintést ad a weboldal felépítéséről. Ezt úgy teheti meg, hogy jobb gombbal kattint a weblapra, és rákattint a „View page source” gombra. Ezután megvizsgálja a bejelentkezési űrlapot. Ezt úgy teheti meg, hogy jobb gombbal kattint az egyik bejelentkezési mezőre, majd rákattint Elem vizsgálata. Ellenőrző elemnél látnia kell bemenet címkék, majd egy szülő forma tag valahol fölötte. Ez azt mutatja, hogy a bejelentkezések alapvetően létezők POSTa webhely szerver-oldalára.

Most vegye figyelembe a név a felhasználónév és jelszó mezőbe beírt címkék attribútuma, ezekre a kód írásakor szükség lesz. Ehhez a weboldalhoz a név a felhasználónév és a jelszó attribútuma felhasználónév és Jelszó illetőleg.

Ezután meg kell tudnunk, vannak-e más paraméterek, amelyek fontosak lennének a bejelentkezéshez. Gyorsan magyarázzuk el ezt. A webhelyek biztonságának növelése érdekében általában tokenek készülnek a Cross Site Forgery támadások megelőzésére.

Ezért, ha ezeket a tokeneket nem adják hozzá a POST kéréshez, a bejelentkezés sikertelen lesz. Tehát honnan tudhatunk ilyen paraméterekről?

A Hálózat fület kell használnunk. Ha ezt a lapot a Google Chrome vagy a Mozilla Firefox böngészőjébe szeretné elérni, nyissa meg a Fejlesztői eszközöket, és kattintson a Hálózat fülre.

Miután a hálózat lapon van, próbálja meg frissíteni az aktuális oldalt, és észreveszi, hogy kérések érkeznek. Meg kell próbálnia figyelni a POST-kérelmek küldését, amikor megpróbálunk bejelentkezni.

Itt tennénk a következő lépéseket, miközben megnyílik a Hálózat fül. Írja be a bejelentkezési adatokat, és próbáljon meg bejelentkezni. Az első kérésnek a POST kérést kell látnia.

 

Kattintson a POST kérelemre, és tekintse meg az űrlap paramétereit. Észreveheti, hogy a weboldal rendelkezik egy csrf_token paraméter értékkel. Ez az érték dinamikus érték, ezért ezeket az értékeket a KAP kérjen először, mielőtt a POST kérés.

Más webhelyeken, amelyeken dolgozik, valószínűleg nem látja a weboldalt csrf_token de lehetnek más tokenek is, amelyeket dinamikusan generálnak. Idővel jobban megismeri azokat a paramétereket, amelyek valóban fontosak a bejelentkezési kísérlet során.

A kód

Először a Requests és a BeautifulSoup használatával kell hozzáférni a bejelentkezési oldal oldal tartalmához.

kérelmekből importálja a munkamenetet
a bs4-ből importálja a BeautifulSoup-ot bs-ként
 
a Session () -vel mint s:
site = s.get ("http: // idézi.kaparni.com / login ")
nyomtatás (site.tartalom)

Ez kinyomtatja a bejelentkezési oldal tartalmát, mielőtt bejelentkeznénk, és ha a „Bejelentkezés” kulcsszóra keres. A kulcsszó az oldal tartalmában található, amely megmutatja, hogy még be kell jelentkeznünk.

Ezután keresnénk a csrf_token kulcsszó, amelyet az egyik paraméterként találtak a hálózati fül korábbi használatakor. Ha a kulcsszó egyezést mutat egy bemenet tag, akkor az érték minden alkalommal kinyerhető, amikor a szkriptet futtatja a BeautifulSoup segítségével.

kérelmekből importálja a munkamenetet
a bs4-ből importálja a BeautifulSoup-ot bs-ként
 
a Session () néven s-ként:
site = s.get ("http: // idézi.kaparni.com / login ")
bs_content = bs (site.tartalom, "html.elemző")
token = bs_content.find ("input", "name": "csrf_token") ["érték"]
login_data = "felhasználónév": "admin", "jelszó": "12345", "csrf_token": token
s.post ("http: // idézi.kaparni.com / login ", login_data)
home_oldal = s.get ("http: // idézi.kaparni.com ")
nyomtatás (home_page.tartalom)

Ez kinyomtatja az oldal tartalmát a bejelentkezés után, és ha a „Kijelentkezés” kulcsszóra keres. A kulcsszó az oldal tartalmában található, amely megmutatja, hogy sikerült sikeresen bejelentkeznünk.

Vessünk egy pillantást az egyes kódsorokra.

kérelmekből importálja a munkamenetet
a bs4-ből importálja a BeautifulSoup-ot bs-ként

A fenti kódsorok a Session objektum importálására szolgálnak a kérés könyvtárból, a BeautifulSoup objektum pedig a bs4 könyvtárból a bs.

a Session () -vel mint s:

A Requests munkamenet akkor kerül felhasználásra, ha meg akarja őrizni a kérés szövegkörnyezetét, így a sütik és a kérelem munkamenetének összes információ tárolható.

bs_content = bs (site.tartalom, "html.elemző")
token = bs_content.find ("input", "name": "csrf_token") ["érték"]

Ez a kód itt a BeautifulSoup könyvtárat használja, így a csrf_token kinyerhető a weboldalról, majd hozzárendelhető a token változóhoz. Megtanulhatja az adatok csomópontokból történő kinyerését a BeautifulSoup használatával.

login_data = "felhasználónév": "admin", "jelszó": "12345", "csrf_token": token
s.post ("http: // idézi.kaparni.com / login ", login_data)

A kód itt létrehozza a bejelentkezéshez használandó paraméterek szótárát. A szótárak kulcsai a név a bemeneti címkék attribútumai és az értékek a érték a bemeneti címkék attribútumai.

A post metódust használunk a paraméterekkel kapcsolatos postai kérelem elküldéséhez és bejelentkezéshez.

home_oldal = s.get ("http: // idézi.kaparni.com ")
nyomtatás (home_page.tartalom)

Bejelentkezés után a fenti kódsorok egyszerűen kivonják az információkat az oldalról annak bemutatására, hogy a bejelentkezés sikeres volt.

Következtetés

A webhelyek bejelentkezése a Python használatával meglehetősen egyszerű, azonban a webhelyek beállítása nem ugyanaz, ezért egyes webhelyekhez nehezebb bejelentkezni, mint másokhoz. Több mindent meg lehet tenni a bejelentkezési kihívások leküzdése érdekében.

A legfontosabb az egészben a HTML, a Requests, a BeautifulSoup ismerete és az a képesség, hogy megértsék a webböngésző Fejlesztői eszközeinek Hálózat füléről kapott információkat.

A legjobb 10 játék az Ubuntuban
A Windows platform a játékok egyik domináns platformja volt, mivel a játékokat hatalmas százalékban fejlesztik ma a natív Windows támogatására. Kihívh...
5 legjobb arcade játék Linuxhoz
Manapság a számítógépek komoly gépek, amelyeket játékra használnak. Ha nem sikerül megszerezni az új magas pontszámot, akkor tudni fogja, mire gondolo...
Csata a Wesnothért 1.13.6 Megjelent a fejlesztés
Csata a Wesnothért 1.13.A múlt hónapban megjelent 6 a hatodik fejlesztési kiadás az 1-ben.13.x sorozat, és számos fejlesztést hajt végre, nevezetesen ...