# Benötigt die Installation von 'requests' und 'beautifulsoup4' # pip install requests beautifulsoup4 import requests from bs4 import BeautifulSoup import sys import re def suche_film_url(film_titel): """ Sucht auf IMDb nach einem Film und gibt die deutsche URL der Filmseite zurück. Args: film_titel: Der Titel des Films, nach dem gesucht werden soll. Returns: Die deutsche URL der Filmseite oder None, wenn nichts gefunden wurde. """ such_url = f"https://www.imdb.com/find?q={film_titel.replace(' ', '+')}" # Header, um die deutsche Seite zu bevorzugen headers = { 'Accept-Language': 'de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36' } try: response = requests.get(such_url, headers=headers) response.raise_for_status() # Löst eine Ausnahme für HTTP-Fehler aus soup = BeautifulSoup(response.text, 'html.parser') # Finden des ersten Links im Titel-Ergebnisbereich ergebnis_bereich = soup.find('section', {'data-testid': 'find-results-section-title'}) if ergebnis_bereich: link_tag = ergebnis_bereich.find('a', href=re.compile(r'/title/tt\d+')) if link_tag and 'href' in link_tag.attrs: pfad = link_tag['href'] # Extrahieren der Titel-ID (z.B. tt0133093) match = re.search(r'(tt\d+)', pfad) if match: titel_id = match.group(1) return f"https://www.imdb.com/de/title/{titel_id}" except requests.exceptions.RequestException as e: print(f"Ein Fehler bei der Anfrage ist aufgetreten: {e}") return None return None if __name__ == "__main__": if len(sys.argv) > 1: film_name = " ".join(sys.argv[1:]) url = suche_film_url(film_name) if url: print(f"URL für '{film_name}' gefunden: {url}") else: print(f"Konnte keinen Film mit dem Titel '{film_name}' finden.") else: print("Benutzung: python imdb_suche.py ")