aktuelle url abfragen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
forumseeker
User
Beiträge: 20
Registriert: Freitag 5. Januar 2024, 15:04

Hallo!

ich bin totaler Python-Anfänger, will aber folgendes programmieren.

Ein user geht auf eine Internet-Seite und wird von da weitergeleitet. Ich möchte die weitergeleitete Internet-Seite auslesen und dann weiterverarbeiten, sie also in einer Variable speichern.

Wie geht das?

Gruss,
Andreas
Benutzeravatar
DeaD_EyE
User
Beiträge: 1222
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Code: Alles auswählen

from flask import Flask, request

app = Flask(__name__)


@app.route("/")
def root():
    return """
        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="utf-8" />
            <title>/</title>
        </head>

        <body>
            <a href="target">Link zu target</a>
        </body>
        </html>
    """


@app.route("/target")
def target():
    referer = request.headers.get("Referer", "kein Referer gefunden")
    return f"""
        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="utf-8" />
            <meta http-equiv="refresh" content="5; url={referer}">
            <title>target</title>
        </head>

        <body>
            <p>Weitergeleitet von {referer}</p>
            <!-- funktioniert nur, wenn man einen referer hat -->
            <p>Leite in 5 Sekunden wieder um zum referer um...</p>

        </body>
        </html>
    """
Ich habs mal unter Windows getestet. Flask musst du vorher installieren. Am besten in einem venv.
Das Script hatte ich einfach a.py genannt.
Templates habe ich mit Absicht nicht genutzt, um das wesentliche zu zeigen.
Der Referer ist im http-header des Clients, der den Request an den Webserver sendet.
Wenn der Header fehlt, dann kann man den Referer nicht erfahren. Manche blockieren aktiv den Referer, um weniger Spuren zu hinterlassen.
Der Referer wird normalerweise gesetzt, wenn man einen Link anklickt. Die komplette URL steht dann im Referer.

Code: Alles auswählen

py -3.12 -m flask --app a run --debug
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Benutzeravatar
sparrow
User
Beiträge: 4526
Registriert: Freitag 17. April 2009, 10:28

Ich glaube, der Threadstarter möchte, dass der Benutzer in seinem Beispiel durch ein Programm ersetzt wird.

Dann wäre das Stichwort crawler und requests ein möglicherweise passendes Modul.
imonbln
User
Beiträge: 190
Registriert: Freitag 3. Dezember 2021, 17:07

forumseeker hat geschrieben: Mittwoch 28. August 2024, 10:20 Ich möchte die weitergeleitete Internet-Seite auslesen und dann weiterverarbeiten, sie also in einer Variable speichern.
Grundsätzlich sollte man für sowas die requests Libary verwenden, da kann man dann angeben ob die der Weiterleitung folgen soll oder nicht.
Das Response-objekt hat auch die Attribute url, wo die eigentliche URL drinsteht und content (die Von dir gesuchte Variable).

Code: Alles auswählen

import requests

response = requests.get("http://githib.com", allow_redirects=True)
response.raise_for_status()
print(response.content)

Antworten