This commit is contained in:
59
imdb_suche.py
Normal file
59
imdb_suche.py
Normal file
@@ -0,0 +1,59 @@
|
||||
# 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 <film_titel>")
|
||||
Reference in New Issue
Block a user