Seite 1 von 1

Ebooks sortieren nach Altersempfehlung

Verfasst: Samstag 4. November 2023, 13:22
von Gruenergecko
ich versuche meine Ebooks nach Altersempfehlung zu sortieren.
mit Hilfe von Chatgpt bin ich zu folgendem Skript gekommen.

import os
import requests
from bs4 import BeautifulSoup
import shutil

# Funktion zum Abrufen der Altersempfehlung von einer Website
def get_age_recommendation(book_title):
#search_query = book_title.replace(" ", "+")
search_query = f"{book_title}+Altersempfehlung"
url = f"https://www.google.com/search?q={search_query}" # Ersetzen Sie 'example.com' durch die tatsächliche Website, die Sie verwenden möchten.
print(search_query)
try:
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
age_recommendation = soup.find('span', class_='age-recommendation').text
return age_recommendation
else:
print(f"Fehler beim Abrufen der Daten für {book_title}")
except Exception as e:
print(f"Fehler: {e}")
return None

# Verzeichnisse definieren
input_folder = "c:/ebooktest/" # Hier den Pfad zum Ordner mit den Buchtiteln angeben
output_folder = "c:/ebooktest/" # Hier den Pfad zum Zielordner angeben

if not os.path.exists(output_folder):
os.makedirs(output_folder)

# Durch die Dateien im Eingabeordner iterieren
for filename in os.listdir(input_folder):
if filename.endswith(".epub"): # Sie können das Dateiformat anpassen
book_title = os.path.splitext(filename)[0]
age_recommendation = get_age_recommendation(book_title)
print(age_recommendation)

if age_recommendation:
age_folder = os.path.join(output_folder, age_recommendation)

if not os.path.exists(age_folder):
os.makedirs(age_folder)

source_file = os.path.join(input_folder, filename)
destination_file = os.path.join(age_folder, filename)

shutil.copy(source_file, destination_file)
print(f"{filename} wurde in {age_recommendation} kopiert.")
else:
print(f"Altersempfehlung nicht gefunden für {filename}")

print("Prozess abgeschlossen.")


Das Problem ist, das die Suche nicht sauber die Altersempfehlung zurück gibt.
Hat jemand eine Idee, wie ich besser an die Altersempfehlung komme?

Re: Ebooks sortieren nach Altersempfehlung

Verfasst: Samstag 4. November 2023, 13:39
von Sirius3
Das ist halt der übliche Schrott, den ChatGPT liefert, weil das nur Mustererkennung ist, ohne den Inhalt zu verstehen.
Zuerst brauchst du eine Datenbank, wo auch wirklich die Altersempfehlung abgefragt werden kann. Der Rest ist dann einfach. Die os-Funktionen benutzt nun nicht mehr, statt dessen pathlib.Path