Seite 2 von 3

Re: html untersuchen

Verfasst: Sonntag 27. Oktober 2019, 20:49
von Fire Spike
wie funktioniert es bei dir? mit meinem lande ich immer bei der anmeldeseite!

Code: Alles auswählen

def online_benutzer_parser():
    with requests.Session() as session:
        benutzerdaten = {"benutzername" : "Fire Spike",
                         "passwort" : "geht-euch-nichts-an"}
        session.post("https://www.python-forum.de/ucp.php?mode=login", data=benutzerdaten)
        params = session.params
        cookies = session.cookies.get_dict()
        html = session.get("https://www.python-forum.de/viewonline.php", cookies=cookies, params=params).text
        print(html)

Re: html untersuchen

Verfasst: Sonntag 27. Oktober 2019, 21:46
von __blackjack__
@Fire Spike: Ich habe das Formular auf der Indexseite verwendet. Die `params` habe ich nicht gebraucht und die Cookies brauchst Du garantiert nicht, dafür ist ja das `Session`-Objekt da.

Und die Schlüssel heissen natürlich nicht "benutzername" und "passwort".

Re: html untersuchen

Verfasst: Montag 28. Oktober 2019, 16:59
von Fire Spike
geändert aber geht immer noch nicht.

Code: Alles auswählen

def online_benutzer_parser():
    with requests.Session() as session:
        benutzerdaten = {"username" : "Fire Spike",
                         "password" : "ungültig"}
        session.post("https://www.python-forum.de/index.php", data=benutzerdaten)
        html = session.get("https://www.python-forum.de/viewonline.php").text
        print(html)

Re: html untersuchen

Verfasst: Montag 28. Oktober 2019, 18:48
von Sirius3
Du benutzt die falsche URL.

Re: html untersuchen

Verfasst: Montag 28. Oktober 2019, 18:51
von Fire Spike
was ist den die richtige?

Re: html untersuchen

Verfasst: Montag 28. Oktober 2019, 18:54
von Fire Spike
die geht auf jeden fall nicht: ucp.php?mode=login

Re: html untersuchen

Verfasst: Montag 28. Oktober 2019, 19:21
von Sirius3
Wie kommst Du drauf? Außerdem habe ich Dir schon vor einer Woche geschrieben, dass da noch mehr Formular-Daten sind.

Re: html untersuchen

Verfasst: Montag 28. Oktober 2019, 20:08
von Fire Spike
hast recht, der autologin hatte ich übersehen. was erwartet der den für werte? im code finde ich nichts. :(

Re: html untersuchen

Verfasst: Montag 28. Oktober 2019, 22:24
von Fire Spike
ich habe mal 1, true, on und yes übergeben aber es ging nichts :roll: . Was erwartet es denn? :?: :| :oops:

Re: html untersuchen

Verfasst: Montag 28. Oktober 2019, 22:41
von Sirius3
Mit Raten kommst Du hier nicht weiter. Du mußt nachschauen, was wirklich übergeben wird.

Re: html untersuchen

Verfasst: Dienstag 29. Oktober 2019, 07:03
von Fire Spike
das weiss ich, aber im quelltext finde ich nichts. kann gut sein weil ich nicht wirklich die erfahrung von html habe aber ich gab mir mühe. :oops:

Re: html untersuchen

Verfasst: Dienstag 29. Oktober 2019, 07:50
von Sirius3
Developerseite des Browsers Deines Vertrauens öffnen, Formular absenden und nachschauen, welcher Request mit welchen Parametern abgesetzt wurde.

Re: html untersuchen

Verfasst: Dienstag 29. Oktober 2019, 17:32
von Fire Spike
Mein browser ist chromium auf dem rpi4 und dort finde ich nichts wo ich request mit den parametern anschauen könnte.
Ps: Ist bei dir die schrift vom Forum auch aktualisiert worden?

Re: html untersuchen

Verfasst: Dienstag 29. Oktober 2019, 17:53
von __deets__
Moderne Browser haben einen Debugger eingebaut. Einfach Rechtsklick und "dieses Element inspizieren" oder so etwas aehnliches aufrufen. Und da gibt es dann auch einen "Network"-Tab, in dem du dir anschauen kannst, was fuer Requests wann mit welchen Daten passieren.

Re: html untersuchen

Verfasst: Dienstag 29. Oktober 2019, 19:11
von Fire Spike
Also, das hier sind die formulardaten

Code: Alles auswählen

username: Fire Spike
password: bdfbb
autologin: on
redirect: ./ucp.php?mode=login
sid: f95fcf4b747f58cd111f360e715e028b
redirect: index.php
login: Anmelden
welche brauche ich davon?

Re: html untersuchen

Verfasst: Dienstag 29. Oktober 2019, 19:19
von __deets__
Nimm doch einfach alle. Warum sparen?

Re: html untersuchen

Verfasst: Dienstag 29. Oktober 2019, 19:46
von Fire Spike
es geht jetzt, aber wie kann ich jeden namen ausgeben?
Im moment kommt nur der eigene name.

Code: Alles auswählen

soup.find("div", "forumbg forumbg-table").table.tbody.tr.td.a.next
Ich hatte schon versucht über die tr zu iterieren aber es kommt immer ein KeyError.

Re: html untersuchen

Verfasst: Dienstag 29. Oktober 2019, 21:32
von Fire Spike
Ich kann jetzt die normalen user anzeigen, aber bei den bots kommt ein

Code: Alles auswählen

AttributeError: 'NavigableString' object has no attribute 'td'

Code: Alles auswählen

        session.post("https://www.python-forum.de/ucp.php?mode=login", data=benutzerdaten)
        html = session.get("https://www.python-forum.de/viewonline.php").text
        soup = BeautifulSoup(html, "html.parser")
        i = 1
        for tag in soup.find("div", "forumbg forumbg-table").table.tbody.contents:
            try:
                user = tag.td.a.next
            except AttributeError:
                user = tag.td.span.next
            i +=1
            print(user)
was ist hier falsch?

Re: html untersuchen

Verfasst: Mittwoch 30. Oktober 2019, 01:32
von __blackjack__
@Fire Spike: Na offensichtlich das `tag` in dem Fall kein Element mehr ist sondern ein `NavigableString` der kein `td`-Attribut hat.

Ich würde sagen das `contents` ist falsch, weil Du an der Stelle aufhörst Dich an der Struktur zu orientieren. Wenn Du die Tabellenzeilen verarbeiten willst, sollte nach dem `tbody` ein `find_all("tr")` kommen, dann bist Du schon mal sicher das `tag` nicht irgenwas sein kann, sondern nur <tr>-Elemente aus der Tabelle.

Re: html untersuchen

Verfasst: Mittwoch 30. Oktober 2019, 07:30
von Fire Spike
Danke für alle die mir geholfen haben.