ich möchte mal was aus dem netz zusammensuchen und hab das aus Ausgangsmaterial:
Code: Alles auswählen
import requests
from bs4 import BeautifulSoup
import pandas as pd
# URL der Wikipedia-Seite mit den Hauptstädten in Europa
url = "https://de.wikipedia.org/wiki/Liste_der_Hauptst%C3%A4dte_in_Europa"
# Anfrage an die URL senden und Antwort erhalten
response = requests.get(url)
# BeautifulSoup-Objekt aus der HTML-Antwort erstellen
soup = BeautifulSoup(response.content, "html.parser")
# Extrahieren der Namen der Hauptstädte
city_names = []
table = soup.find("table", {"class": "wikitable sortable"})
rows = table.find_all("tr")
for row in rows[1:21]:
cells = row.find_all("td")
city_name = cells[1].find("a").text
city_names.append(city_name)
# Schreiben der Daten in eine Excel-Datei
df = pd.DataFrame(city_names, columns=["Hauptstadt"])
df.to_excel("Wikiresarch.xlsx", index=False)
AttributeError: 'NoneType' object has no attribute 'find_all'
Ich deute das, ds er die Hauptstadtnamen nicht findet. Die Suche findet in Zeile Table=soup.find ... statt.
Auf der Wikiseite steht aber nicht class="wikitable sortable" sondern class="wikitable sortable zebra"
Was soll das Zebra an der Stelle? Was muss ich machen, damit es flutscht...?