Ebooks sortieren nach Altersempfehlung
Verfasst: Samstag 4. November 2023, 13:22
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?
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?