Abrufen von Daten von einer URL in Python

Vaibhav Vaibhav 10 Oktober 2023
Abrufen von Daten von einer URL in Python

Eine URL oder ein Uniform Resource Locator ist eine gültige und eindeutige Webadresse, die auf eine Ressource über das Internet verweist. Diese Ressource kann eine einfache Textdatei, eine ZIP-Datei, eine exe-Datei, ein Video, ein Bild oder eine Webseite sein.

Im Fall einer Webseite wird der HTML- oder der Hypertext Markup Language-Inhalt abgerufen. In diesem Artikel wird gezeigt, wie Sie diese HTML- oder Hypertext Markup Language-Daten mit Python von einer URL abrufen.

Abrufen von Daten von einer URL mithilfe des Moduls requests in Python

Python hat ein requests-Modul, das einfach HTTP-Anfragen (Hypertext Transfer Protocol) sendet. Dieses Modul kann verwendet werden, um den HTML-Inhalt oder einen beliebigen Inhalt von einer gültigen URL abzurufen.

Das Modul requests hat eine Methode get(), mit der wir Daten von einer URL abrufen können. Diese Methode akzeptiert eine url als Argument und gibt ein requests.Response-Objekt zurück.

Dieses Objekt requests.Response enthält Details über die Antwort des Servers auf den gesendeten HTTP-Request. Wenn dieser Methode get() eine ungültige URL übergeben wird, löst die Methode get() eine ConnectionError-Ausnahme aus.

Wenn Sie sich bezüglich der Gültigkeit der URL nicht sicher sind, wird dringend empfohlen, die Blöcke try und except zu verwenden. Schließen Sie einfach den Methodenaufruf get() in einen try- und except-Block ein. Dies wird im kommenden Beispiel dargestellt.

Lassen Sie uns nun verstehen, wie Sie diese Funktion verwenden, um HTML-Inhalt oder beliebige Daten von einer gültigen URL abzurufen. Siehe den folgenden Code für dasselbe.

Weitere Informationen zum Objekt requests.Response finden Sie in der offiziellen Dokumentation hier.

import requests

try:
    url = "https://www.lipsum.com/feed/html"
    r = requests.get(url)
    print("HTML:\n", r.text)
except:
    print(
        "Invalid URL or some error occured while making the GET request to the specified URL"
    )

Ausgabe:

HTML:
...

Beachten Sie, dass ... den HTML-Inhalt darstellt, der von der URL abgerufen wurde. Der HTML-Inhalt wurde in der obigen Ausgabe nicht angezeigt, da er zu groß war.

Wenn die URL fehlerhaft ist, führt der obige Code den Code innerhalb des except-Blocks aus. Der folgende Code zeigt, wie es funktioniert.

import requests

try:
    url = "https://www.thisisafaultyurl.com/faulty/url/"
    r = requests.get(url)
    print("HTML:\n", r.text)
except:
    print(
        "Invalid URL or some error occured while making the GET request to the specified URL"
    )

Ausgabe:

Invalid URL or some error occurred while making the GET request to the specified URL

Einige Webseiten erlauben aus Sicherheitsgründen keine GET-Anfragen zum Abrufen ihrer Inhalte. In solchen Fällen können wir die Methode post() aus dem Modul requests verwenden.

Wie der Name schon sagt, sendet diese Methode POST-Anfragen an eine gültige URL. Diese Methode akzeptiert zwei Argumente, nämlich url und data.

Die url ist die Ziel-URL und data akzeptiert ein Dictionary mit Header-Details in Form von Schlüssel-Wert-Paaren. Die Header-Details können ein API- oder Application Programming Interface-Schlüssel, ein CSRF- oder Cross-Site-Request-Forgery-Token usw. sein.

Der Python-Code für einen solchen Fall wäre wie folgt.

import requests

try:
    url = "https://www.thisisaurl.com/that/accepts/post/requests/"
    payload = {
        "api-key": "my-api-key",
        # more key-value pairs
    }
    r = requests.post(url, data=payload)
    print("HTML:\n", r.text)
except:
    print(
        "Invalid URL or some error occured while making the POST request to the specified URL"
    )
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Verwandter Artikel - Python URL