Moiz commited on
Commit
d997e10
·
1 Parent(s): 55dc4d9

added database and script

Browse files
Files changed (2) hide show
  1. MovieDatabase.csv +0 -0
  2. database.py +69 -0
MovieDatabase.csv ADDED
The diff for this file is too large to render. See raw diff
 
database.py ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import requests
2
+ import pandas as pd
3
+ import json
4
+
5
+ # Load CSV
6
+ try:
7
+ df = pd.read_csv('/Users/moizpro/Desktop/MoviesRecommender/MovieRecommender/imdb_movie_codes.csv')
8
+ print("df loaded..")
9
+ except FileNotFoundError:
10
+ print("Error: CSV file not found at path")
11
+ exit()
12
+
13
+ # Define column names for the DataFrame
14
+ column_names = [
15
+ "id", "Title", "Year", "Rated", "Runtime", "Genre1", "Genre2", "Genre3",
16
+ "Director", "Writer", "Plot", "Awards", "IMDb", "Rotten Tomatoes",
17
+ "Metascore", "IMDb_votes", "Type", "BoxOffice"
18
+ ]
19
+ database = pd.DataFrame(columns=column_names)
20
+
21
+ # Define function to fetch movie details and save in DataFrame
22
+ def get_movie(movie_id):
23
+ api_key = "f2443b04"
24
+ url = f"http://www.omdbapi.com/?apikey={api_key}&i={movie_id}&plot=full"
25
+ try:
26
+ response = requests.get(url)
27
+ if response.status_code == 200:
28
+ data = response.json()
29
+ # Check for valid response
30
+ if data.get("Response") == "True":
31
+ # Extract genres
32
+ genres = (data.get("Genre") or "").split(", ")
33
+ genre1, genre2, genre3 = genres[:3] if len(genres) >= 3 else genres + [None] * (3 - len(genres)
34
+ )
35
+ # Append the movie data to the DataFrame
36
+ database.loc[len(database)] = [
37
+ movie_id,
38
+ data.get("Title"),
39
+ data.get("Year"),
40
+ data.get("Rated"),
41
+ data.get("Runtime"),
42
+ genre1, genre2, genre3,
43
+ data.get("Director"),
44
+ data.get("Writer"),
45
+ data.get("Plot"),
46
+ data.get("Awards"),
47
+ data.get("imdbRating"),
48
+ data.get("Ratings")[1]["Value"] if len(data.get("Ratings", [])) > 1 else None,
49
+ data.get("Metascore"),
50
+ data.get("imdbVotes"),
51
+ data.get("Type"),
52
+ data.get("BoxOffice"),
53
+ ]
54
+ else:
55
+ print(f"Error in API response for movie_id {movie_id}: {data.get('Error')}")
56
+ else:
57
+ print(f"HTTP error {response.status_code} for movie_id {movie_id}")
58
+ except Exception as e:
59
+ print(f"Exception occurred for movie_id {movie_id}: {e}")
60
+
61
+ # Loop through movie IDs in the CSV and fetch details
62
+ for i in range(len(df)):
63
+ movie_id = df.iloc[i, 0]
64
+ get_movie(movie_id)
65
+
66
+ # Save the DataFrame to a CSV file
67
+ output_file = '/Users/moizpro/Desktop/MoviesRecommender/MovieRecommender'
68
+ database.to_csv(output_file, index=False)
69
+ print(f"Movie database saved to {output_file}")