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

. Was erwartet es denn?

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.

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.