Anmelden auf Websites mit Python

Anmelden auf Websites mit Python
Die Login -Funktion ist eine wichtige Funktionalität in den heutigen Webanwendungen. Diese Funktion hilft, spezielle Inhalte von Nichtbenutzern der Website zu verhindern, und dient auch zur Identifizierung von Premium-Benutzern. Wenn Sie ein Web -Scraping einer Website beabsichtigen, können Sie auf die Anmeldungsfunktion stoßen, wenn der Inhalt nur für registrierte Benutzer verfügbar ist.

In der Vergangenheit wurden Web -Scraping -Tutorials behandelt. Daher deckt dieses Tutorial nur den Aspekt des Zugriffs auf Websites durch.

Um dieses Tutorial zu verstehen und Skripte zum Anmelden auf Websites schreiben zu können, benötigen Sie ein gewisses Verständnis von HTML. Vielleicht nicht genug, um großartige Websites zu erstellen, aber genug, um die Struktur einer grundlegenden Webseite zu verstehen.

Installation

Dies würde mit den Anfragen und wunderschönen Python -Bibliotheken geschehen. Abgesehen von diesen Python -Bibliotheken benötigen Sie einen guten Browser wie Google Chrome oder Mozilla Firefox, da diese für die Erstanalyse wichtig sind, bevor Sie Code schreiben.

Die Anfragen und BeautifulSoup -Bibliotheken können mit dem PIP -Befehl aus dem Terminal installiert werden, wie unten angezeigt:

PIP -Installationsanforderungen
PIP Installieren Sie BeautifulSoup4

Aktivieren Sie die interaktive Hülle von Python, um den Erfolg der Installation zu bestätigen, die durch Tippen durchgeführt wird Python in das Terminal.

Importieren Sie dann beide Bibliotheken:

Anfragen importieren
Aus BS4 Import BeautifulSoup

Der Import ist erfolgreich, wenn es keine Fehler gibt.

Der Prozess

Das Anmeldung auf einer Website mit Skripten erfordert Kenntnisse über HTML und eine Vorstellung davon, wie das Web funktioniert. Schauen wir uns kurz nach, wie das Web funktioniert.

Websites bestehen aus zwei Hauptteilen, der Client-Seite und der Serverseite. Die Client-Seite ist Teil einer Website, mit der der Benutzer interagiert, während die serverseitige Seite der Teil der Website ist, auf dem Geschäftslogik und andere Servervorgänge wie dem Zugriff auf die Datenbank ausgeführt werden.

Wenn Sie versuchen, eine Website über ihren Link zu eröffnen. Diese Anfrage wird als Get -Anfrage bezeichnet. Wenn Sie jedoch ein Formular ausfüllen, eine Mediendatei oder ein Dokument hochladen, einen Beitrag erstellen und auf eine Schaltfläche Senden aufnehmen, senden Sie Informationen an die Serverseite. Diese Anfrage wird als Postanfrage bezeichnet.

Ein Verständnis dieser beiden Konzepte wäre wichtig beim Schreiben unseres Skripts.

Überprüfung der Website

Um die Konzepte dieses Artikels zu üben, verwenden wir die Zitate, um die Website zu kratzen.

Die Anmeldung auf Websites erfordert Informationen wie den Benutzernamen und ein Passwort.

Da diese Website jedoch nur als Beweis für das Konzept verwendet wird, geht alles. Deshalb würden wir verwenden Administrator als Benutzername und 12345 als Passwort.

Erstens ist es wichtig, die Seitenquelle anzuzeigen, da dies einen Überblick über die Struktur der Webseite geben würde. Dies kann durchgeführt werden, indem Sie mit der rechten Maustaste auf die Webseite klicken und auf "Seitenquelle anzeigen" klicken. Als nächstes überprüfen Sie das Anmeldeformular. Sie tun dies, indem Sie mit der rechten Maustaste auf eines der Anmeldefelder klicken und klicken Element inspizieren. Bei der Inspektion von Elementen sollten Sie sehen Eingang Tags und dann ein Elternteil form Tag irgendwo darüber Tag. Dies zeigt, dass Anmeldungen im Grunde genommen Formen sind POSTauf die serverseitige Seite der Website geführt.

Beachten Sie nun die Name Attribut der Eingabe -Tags für den Benutzernamen und die Kennwortfelder, sie würden beim Schreiben des Codes benötigt werden. Für diese Website die Name Attribut für den Benutzernamen und das Passwort sind Nutzername Und Passwort bzw.

Als nächstes müssen wir wissen, ob es andere Parameter gibt, die für die Anmeldung wichtig wären. Lassen Sie uns das schnell erklären. Um die Sicherheit von Websites zu erhöhen, werden in der Regel Token generiert, um die Angriffe über die Fälschung von Cross -Site zu verhindern.

Wenn diese Token nicht zur Postanforderung hinzugefügt werden, würde der Anmeldung fehlschlagen. Woher wissen wir über solche Parameter??

Wir müssten die Registerkarte Netzwerk verwenden. Um diese Registerkarte auf Google Chrome oder Mozilla Firefox zu erhalten, öffnen Sie die Entwickler -Tools und klicken Sie auf die Registerkarte Netzwerk.

Sobald Sie auf der Registerkarte Netzwerk befinden, versuchen Sie die aktuelle Seite und Sie würden feststellen. Sie sollten versuchen, auf Post -Anfragen zu achten, wenn wir versuchen, sich anzumelden.

Folgendes würden wir als nächstes tun, während wir die Registerkarte Netzwerk öffnen lassen. Geben Sie die Anmeldetails ein und versuchen Sie sich anzumelden. Die erste Anfrage, die Sie sehen würden, sollte die Post -Anfrage sein.

Klicken Sie auf die Postanforderung und sehen Sie sich die Formularparameter an. Sie würden bemerken, dass die Website eine hat csrf_token Parameter mit einem Wert. Dieser Wert ist ein dynamischer Wert, deshalb müssten wir solche Werte mit dem erfassen ERHALTEN Fordern Sie zuerst an, bevor Sie die verwenden POST Anfrage.

Für andere Websites, an denen Sie arbeiten würden, sehen Sie das wahrscheinlich nicht nicht csrf_token Aber es kann andere Token geben, die dynamisch erzeugt werden. Im Laufe der Zeit würden Sie besser wissen, welche Parameter, die wirklich wichtig sind.

Der Code

Zunächst müssen wir Anfragen und BeautifulSoups verwenden, um Zugriff auf den Seiteninhalt der Anmeldeseite zu erhalten.

von Anfragen importieren
von BS4 importieren Sie BeautifulSoup als BS
mit Session () als s:
Site = s.Get ("http: // zitate.kratzen.com/login ")
Druck (Site.Inhalt)

Dadurch wird der Inhalt der Anmeldeseite ausdrucken. Das Schlüsselwort würde in dem Seiteninhalt gefunden, das zeigt, dass wir uns noch nicht anmelden müssen.

Als nächstes würden wir nach dem suchen csrf_token Schlüsselwort, das als einer der Parameter gefunden wurde, wenn die Registerkarte Netzwerk früher verwendet wurde. Wenn das Schlüsselwort eine Übereinstimmung mit einem zeigt Eingang Tag, dann kann der Wert jedes Mal extrahiert werden, wenn Sie das Skript mit BeautifulSoup ausführen.

von Anfragen importieren
von BS4 importieren Sie BeautifulSoup als BS
mit Session () als s:
Site = s.Get ("http: // zitate.kratzen.com/login ")
BS_Content = BS (Site.Inhalt, "HTML.Parser ")
token = bs_content.find ("input", "name": "csrf_token") ["Wert"]
login_data = "userername": "admin", "password": "12345", "csrf_token": token
S.post ("http: // zitate.kratzen.com/login ", login_data)
home_page = s.Get ("http: // zitate.kratzen.com ")
print (home_page.Inhalt)

Dadurch würde der Inhalt der Seite nach der Anmeldung ausdrucken und wenn Sie nach dem Schlüsselwort "Abmelden" suchen. Das Schlüsselwort würde in dem Seiteninhalt gefunden werden, aus denen hervorgeht, dass wir uns erfolgreich anmelden konnten.

Schauen wir uns jede Codezeile an.

von Anfragen importieren
von BS4 importieren Sie BeautifulSoup als BS

Die obigen Codezeilen werden verwendet, um das Sitzungsobjekt aus der Anforderungsbibliothek und des BeautifulSoup -Objekts aus der BS4 -Bibliothek mit einem Alias ​​von zu importieren BS.

mit Session () als s:

Die Befragungssitzung wird verwendet, wenn Sie beabsichtigen, den Kontext einer Anfrage zu führen, damit die Cookies und alle Informationen dieser Anfrage -Sitzung gespeichert werden können.

BS_Content = BS (Site.Inhalt, "HTML.Parser ")
token = bs_content.find ("input", "name": "csrf_token") ["Wert"]

Dieser Code hier verwendet die schöne Bibliothek so, dass die csrf_token kann von der Webseite extrahiert und dann der Token -Variablen zugewiesen werden. Sie können über das Extrahieren von Daten aus Knoten mit BeautifulSoup erfahren.

login_data = "userername": "admin", "password": "12345", "csrf_token": token
S.post ("http: // zitate.kratzen.com/login ", login_data)

Der Code hier erstellt ein Wörterbuch der Parameter, die für die Anmeldung verwendet werden sollen. Die Schlüssel der Wörterbücher sind die Name Attribute der Eingabe -Tags und der Werte sind die Wert Attribute der Eingabe -Tags.

Der Post Die Methode wird verwendet, um eine Postanforderung mit den Parametern zu senden und uns einzuzeichnen.

home_page = s.Get ("http: // zitate.kratzen.com ")
print (home_page.Inhalt)

Nach einer Anmeldung extrahieren diese obigen Codezeilen einfach die Informationen von der Seite, um zu zeigen, dass die Anmeldung erfolgreich war.

Abschluss

Der Prozess der Anmeldung in Websites mit Python ist recht einfach, die Einrichtung von Websites ist jedoch nicht gleich, daher würden sich einige Websites als schwieriger erweisen als andere als andere. Es kann noch mehr getan werden, um alle Anmeldemöglichkeiten zu überwinden, die Sie haben.

Das Wichtigste in all dem ist das Wissen über HTML, Anfragen, BeautifulSoup und die Fähigkeit, die Informationen aus der Registerkarte Netzwerk der Entwicklertools Ihres Webbrowsers zu verstehen.