我正在寻找将所有IMDB数据导入我自己的MySQL数据库的解决方案。我已经从他们的主页下载了所有IMDB数据文件,这些文件都是文件格式* .list(在Windows中)。
我想检索并获取该信息并将其正确插入我的MySQL数据库,以便我可以进行一些测试和查询搜索。
我跟随了一位导游,但大约一半我意识到这是一本2004年的指南,现在的工作方式与七年前的工具相比并不顺利。
我浏览过网络应用程序,php脚本,python脚本以及什么不能找到解决方案但没有运气。 IMDB自己引用的W32工具也不起作用。
有没有人知道解决方案或方法来执行此任务?
答案 0 :(得分:6)
有一些nice py script,女巫帮助了我。只需建立连接并运行它。 〜1小时可以解决所有问题。
编辑:使用this readme file制作剧本。
答案 1 :(得分:2)
对IMDbPY和IMDb数据文件格式的更改意味着现有答案不再有效(截至2018年1月)。
我使用的是Ubuntu 17.10和MariaDB 10.1(不是MySQL,但以下内容也适用于MySQL)。
对IMDbPY的更改
最新版本的IMDbPY是6.2,它在Python 3中实现,并且gcc
和SQLObject
的依赖关系已被删除。此外,Python包MySQL-python
不适用于Python 3,因此我们安装了mysqlclient
;见下文。 (mysqlclient
的API与MySQL-python
兼容。)
对IMDb数据文件格式的更改
2017年12月引入了对IMDb数据文件格式的更改,IMDbPY 6.2(当前版本)尚未使用新文件格式。 (参见this GitHub问题。)
在修复此问题之前,请使用以ftp://ftp.fu-berlin.de/pub/misc/movies/database/frozendata/格式提供的旧格式发布的最新版IMDd数据。下载所有*.list.gz
个文件(不包括子目录中的文件)。
要遵循的新步骤
安装Python 3和所需的软件包:
sudo apt install python3
pip3 install mysqlclient
在MariaDB中,创建一个数据库imdb
,并将所有权限授予user
密码为password
。
CREATE DATABASE imdb;
GRANT ALL PRIVILEGES ON imdb.* TO 'user'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
获取IMDbPY 6.2:
wget https://github.com/alberanid/imdbpy/archive/6.2.zip
unzip 6.2.zip
cd imdbpy-6.2
python3 setup.py install
将IMDb数据加载到MariaDB:
cd bin
python3 imdbpy2sql.py -d [imdb_dataset_directory] -u 'mysql://user:password@localhost/imdb'
编辑: IMDbPY版本6.2不会创建外键。请参阅this GitHub问题。如果需要创建外键,则需要使用旧版本的IMDbPY,但是在旧版本中也会报告生成外键的问题(请参阅链接的GitHub问题)。
更新:导入需要4.5小时,使用InnoDB表时没有问题。
编辑:如果希望使用IMDbPY版本6.2并需要外键,则需要在生成后手动将它们添加到数据库中。在添加外键之前,需要进行非常少量的数据清理。这个清理和需要添加的外键在this GitHub问题中描述。
答案 2 :(得分:1)
在ubuntu上
1)安装所有必需的包。
sudo apt-get install -y gcc python python-dev libssl-dev libxml2-dev libxslt1-dev zlib1g-dev python-setuptools python-pip
easy_install -U SQLObject
pip install MySQL-python
2)安装IMDBPY。
cd [IMDBPY_parent_directory]
wget http://prdownloads.sourceforge.net/imdbpy/IMDbPY-5.1.tar.gz
tar -xzf IMDbPY-5.1.tar.gz
cd IMDbPY-5.1
python setup.py install
3)在mysql中,创建一个数据库" imdb",并将所有权限授予" user"用密码"密码"。
CREATE DATABASE imdb;
GRANT ALL PRIVILEGES ON imdb.* TO 'user'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
4)下载所有IMDB数据。
mkdir [imdb_data_directory]
cd [imdb_data_directory]
wget -r --accept="*.gz" --no-directories --no-host-directories --level 1 ftp://ftp.fu-berlin.de/pub/misc/movies/database/
5)将IMDB数据加载到mysql(使用myisam作为存储引擎)。
cd [IMDBPY_parent_directory]/IMDbPY-5.1/bin
python imdbpy2sql.py -d [imdb_data_directory] -u
'mysql://user:password@localhost/imdb' --mysql-force-myisam
借用" Import IMDb Data Set from Plain Text Files To MySQL Database"有一些小修正。
答案 3 :(得分:0)
对imdb客户端进行了更新,并添加了一些文档,使其中一些过时。有关最新信息,请参见updated docs。