nachdem ich ein wenig über Web Scraping gelesen habe, dachte ich, spiele ich doch mal ein wenig rum und versuche nachzuverfolgen, wer an Diskussion X (im Python-Forum) teilgenommen hat.
Dafür habe ich nun folgenden "Protocode" geschrieben:
Code: Alles auswählen
import requests
import bs4
res = requests.get('https://www.python-forum.de/viewtopic.php?f=1&t=1689')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, features="html.parser")
elems = soup.select('.username') # Suche nach der Klasse "username"
inaktive_benutzer = []
for x in range(len(elems)):
variable = str(elems[x])
if variable[:5] == "<span":
inaktive_benutzer.append(variable[variable.find('>'):-7]) # Schneidet den Benutzernamen aus
else:
index = variable.find('>')
print(variable[index+1:-4]) # Schneidet auch hier den Benutzernamen aus
if inaktive_benutzer: # Sollte es Einträge in der Liste "inaktive_benutzer" geben, werden diese angezeigt
print("\n\nInaktive Benutzer:")
for i in inaktive_benutzer:
print(i)
Ich weiß, dass nur die erste Seite der Diskussion untersucht wird und Benutzer auch mehrfach vorkommen ...
Darum geht es mir im Moment aber auch nicht. Ich stelle mir die Frage, ob ich den Benutzernamen auch ohne diesen Aufwand ermitteln kann?
Zudem würde mich noch interessieren, warum der Typ von elems list ist, ich aber
Code: Alles auswählen
variable = str(elems[x])
Code: Alles auswählen
<class 'bs4.element.Tag'>
Danke für die hoffentlich schnellen Antworten und einen schönen Abend wünscht
TomBombadil