Ebooks sortieren nach Altersempfehlung

Du hast eine Idee für ein Projekt?
Antworten
Gruenergecko
User
Beiträge: 1
Registriert: Samstag 4. November 2023, 12:15

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?
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

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
Antworten