diff --git a/python/webscrappingbdd.py b/python/webscrappingbdd.py
deleted file mode 100755
index 84360e7..0000000
--- a/python/webscrappingbdd.py
+++ /dev/null
@@ -1,231 +0,0 @@
-import requests
-from bs4 import BeautifulSoup
-import os
-import time
-
-# Liste de films associée à la liste de personnages fournie plus tôt
-films = [
- "Harry Potter", "Star Wars", "Le Seigneur des Anneaux", "Batman", "Spider-Man",
- "Iron Man", "Les Avengers", "Doctor Strange", "Deadpool", "X-Men",
- "Black Panther", "Aquaman", "La Ligue des Justiciers", "Shazam", "Les Gardiens de la Galaxie",
- "Le Parrain", "Le Chevalier Noir", "Inception", "Fight Club", "Pulp Fiction",
- "Forrest Gump", "Matrix", "Jurassic Park", "Gladiator", "Le Silence des Agneaux",
- "La Liste de Schindler", "Braveheart", "La Ligne Verte", "Il faut sauver le soldat Ryan", "Thor",
- "Captain America", "Logan", "Joker", "Wonder Woman", "L'Homme d'Acier",
- "Hunger Games", "Divergente", "Les Animaux Fantastiques", "Le Hobbit",
- "Pirates des Caraïbes", "Toy Story", "La Reine des Neiges", "Le Roi Lion", "La Belle et la Bête",
- "Aladdin", "Mulan", "Cendrillon", "La Belle au bois dormant", "Blanche-Neige",
- "Raiponce", "Vaiana", "Zootopie", "Vice-versa", "Le Monde de Nemo",
- "Les Indestructibles", "Ratatouille", "WALL-E", "Là-haut", "Coco",
- "Monstres & Cie", "Cars", "Madagascar", "Shrek", "Kung Fu Panda",
- "Dragons", "L'Âge de glace", "Les Croods"
-]
-
-# Petite base de données locale avec les années des films
-film_years = {
- "Harry Potter": "2001",
- "Star Wars": "1977",
- "Le Seigneur des Anneaux": "2001",
- "Batman": "1989",
- "Spider-Man": "2002",
- "Iron Man": "2008",
- "Les Avengers": "2012",
- "Doctor Strange": "2016",
- "Deadpool": "2016",
- "X-Men": "2000",
- "Black Panther": "2018",
- "Aquaman": "2018",
- "La Ligue des Justiciers": "2017",
- "Shazam": "2019",
- "Les Gardiens de la Galaxie": "2014",
- "Le Parrain": "1972",
- "Le Chevalier Noir": "2008",
- "Inception": "2010",
- "Fight Club": "1999",
- "Pulp Fiction": "1994",
- "Forrest Gump": "1994",
- "Matrix": "1999",
- "Jurassic Park": "1993",
- "Gladiator": "2000",
- "Le Silence des Agneaux": "1991",
- "La Liste de Schindler": "1993",
- "Braveheart": "1995",
- "La Ligne Verte": "1999",
- "Il faut sauver le soldat Ryan": "1998",
- "Thor": "2011",
- "Captain America": "2011",
- "Logan": "2017",
- "Joker": "2019",
- "Wonder Woman": "2017",
- "L'Homme d'Acier": "2013",
- "Hunger Games": "2012",
- "Divergente": "2014",
- "Les Animaux Fantastiques": "2016",
- "Le Hobbit": "2012",
- "Pirates des Caraïbes": "2003",
- "Toy Story": "1995",
- "La Reine des Neiges": "2013",
- "Le Roi Lion": "1994",
- "La Belle et la Bête": "1991",
- "Aladdin": "1992",
- "Mulan": "1998",
- "Cendrillon": "1950",
- "La Belle au bois dormant": "1959",
- "Blanche-Neige": "1937",
- "Raiponce": "2010",
- "Vaiana": "2016",
- "Zootopie": "2016",
- "Vice-versa": "2015",
- "Le Monde de Nemo": "2003",
- "Les Indestructibles": "2004",
- "Ratatouille": "2007",
- "WALL-E": "2008",
- "Là-haut": "2009",
- "Coco": "2017",
- "Monstres & Cie": "2001",
- "Cars": "2006",
- "Madagascar": "2005",
- "Shrek": "2001",
- "Kung Fu Panda": "2008",
- "Dragons": "2010",
- "L'Âge de glace": "2002",
- "Les Croods": "2013"
-}
-
-# Fonction pour rechercher une image sur Bing
-def search_image_bing(personnage, film):
- url = f"https://www.bing.com/images/search?q={personnage.replace(' ', '+')}+{film.replace(' ', '+')}"
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'}
-
- response = requests.get(url, headers=headers)
- soup = BeautifulSoup(response.text, 'lxml')
-
- # Rechercher la première image
- image = soup.find('img', {'class': 'mimg'})
- if image and 'src' in image.attrs:
- return image['src']
- return None
-
-# Vérifier si une citation est en français
-common_french_words = {
- 'le', 'la', 'les', 'et', 'est', 'pour', 'que', 'qui', 'un', 'une', 'de', 'du', 'ce', 'cela',
- 'dans', 'sur', 'par', 'avec', 'en', 'au', 'aux', 'des', 'ou', 'mais', 'si', 'ne', 'pas',
- 'il', 'elle', 'ils', 'elles', 'nous', 'vous', 'tu', 'je', 'me', 'te', 'se', 'sont', 'été',
- 'avoir', 'être', 'faire', 'dire', 'pouvoir', 'aller', 'venir', 'voir', 'vouloir', 'savoir',
- 'bien', 'tout', 'mon', 'ton', 'son', 'notre', 'votre', 'leur', 'plus', 'aussi', 'comme',
- 'faut', 'a', 'le', 'la', 'les'
-}
-
-def is_french(citation_text):
- words_in_citation = citation_text.lower().split()
- french_word_count = sum(1 for word in words_in_citation if word in common_french_words)
-
- # On considère que c'est français si au moins 50% des mots sont reconnus comme français
- return french_word_count / len(words_in_citation) >= 0.5
-
-# Fonction pour obtenir l'année du film depuis la base de données locale ou via Google
-def get_film_year(film_name):
- if film_name in film_years:
- return film_years[film_name]
- return '0' # Retourner 0 si l'année est inconnue
-
-# Fonction pour scraper les citations d'un film
-def scrape_citations(film_name):
- url = "https://www.kaakook.fr/rechercher"
- data = {
- "extrfilm": film_name, # Nom du film
- "extrcitation": "" # On laisse vide pour chercher toutes les citations du film
- }
-
- # Faire la requête POST
- response = requests.post(url, data=data)
- if response.status_code != 200:
- print(f"Erreur avec le film {film_name}. Status code: {response.status_code}")
- return []
-
- # Parser la réponse HTML
- soup = BeautifulSoup(response.content, "html.parser")
- citations = []
-
- # Extraire les citations et autres informations
- articles = soup.find_all('article')
- for article in articles:
- citation_text = article.find('a').get_text().strip().replace("\n", " ").replace(" ", " ")
-
- # Ignorer les citations contenant du HTML
(donc multi-lignes)
- if "
" in str(article):
- continue
-
- # Vérifier si la citation commence par un tiret (dialogue)
- if citation_text.startswith('-'):
- continue
-
- # Vérifier si la citation est en français
- if not is_french(citation_text):
- continue
-
- source = article.find('cite').get_text().strip()
-
- # Récupérer le personnage (ignorer si le personnage est inconnu)
- footer_links = article.find('footer').find_all('a')
- character = footer_links[1].get_text().strip() if len(footer_links) > 1 else 'Inconnu'
-
- # Si le personnage est inconnu, on ignore cette citation
- if character == 'Inconnu':
- continue
-
- # Récupérer l'image associée
- img_tag = article.find('img')
- image_url = img_tag['src'] if img_tag else 'images/default.jpg'
-
-
- # Télécharger l'image si elle n'existe pas déjà
- if image_url == 'images/default.jpg':
- image_url = search_image_bing(character, film_name)
- if image_url:
- download_image(image_url, character)
-
- # Récupérer l'année via la base de données locale ou Google
- year = get_film_year(film_name)
-
- # Stocker les résultats sous la forme "citation; source; character; year; image"
- citations.append(f"\n{citation_text}; {source}; {character}; {year}; {image_url}")
-
- return citations
-
-# Fonction pour télécharger une image
-def download_image(image_url, character_name):
- image_name = f"{character_name.replace(' ', '_')}.jpg"
- image_path = os.path.join("images", image_name)
-
- # Vérifier si le dossier "images" existe, sinon le créer
- if not os.path.exists("images"):
- os.makedirs("images")
-
- # Si l'image n'existe pas déjà, la télécharger
- if not os.path.exists(image_path):
- try:
- img_data = requests.get(image_url).content
- with open(image_path, 'wb') as handler:
- handler.write(img_data)
- print(f"Image téléchargée : {image_path}")
- except Exception as e:
- print(f"Erreur lors du téléchargement de l'image {image_url} : {e}")
-
-# Ecrire les résultats dans un fichier txt unique
-def save_citations_to_file(citations):
- with open("citation.txt", "a", encoding="utf-8") as file:
- for citation in citations:
- file.write(citation + "\n")
-
-# Itérer sur la liste des films et récupérer les citations
-for film in films:
- print(f"Recherche des citations pour le film : {film}")
- citations = scrape_citations(film)
- if citations:
- save_citations_to_file(citations)
- print(f"Ajouté {len(citations)} citation(s) pour {film}.")
- else:
- print(f"Aucune citation trouvée pour {film}.")
- time.sleep(2) # Petite pause pour éviter d'envoyer trop de requêtes rapidement