IMDB to MySQL:将 IMDB 数据插入 MySQL 数据库

Posted

技术标签:

【中文标题】IMDB to MySQL:将 IMDB 数据插入 MySQL 数据库【英文标题】:IMDB to MySQL: Insert IMDB data into MySQL database 【发布时间】:2011-11-06 20:15:37 【问题描述】:

我正在寻找将所有 IMDB 数据导入我自己的 mysql 数据库的解决方案。我已经从他们的主页下载了所有的 IMDB 数据文件,这些文件都是 *.list 文件格式(在 Windows 中)。

我想检索这些信息并将其正确插入到我的 MySQL 数据库中,以便进行一些测试和查询搜索。

我遵循了一个指南,但大约一半的人意识到它是 2004 年的指南,而现在的工作方式与七年前的工具并不一致。

我在网上浏览了应用程序、php-scripts、python-script 以及没有找到解决方案但没有运气的东西。 IMDB 自己引用的 W32 工具也不起作用。

有没有人知道解决方案或方法来完成这项任务?

【问题讨论】:

【参考方案1】:

有一些nice py script,女巫帮了我。只需建立连接并运行它。约 1 小时来解决所有问题。

编辑:使用this readme file 制作脚本。

【讨论】:

非常感谢。这正是我想要的。花了大约 4 个小时,但现在我用 IMDB 得到了一个不错的 3GB 数据库:-)【参考方案2】:

在 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”,密码为“password”。

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】:

对 IMDbPY 和 IMDb 数据文件格式的更改意味着现有答案不再有效(截至 2018 年 1 月)。

我使用的是 Ubuntu 17.10 和 MariaDB 10.1(不是 MySQL,但以下也适用于 MySQL)。

对 IMDbPY 的更改

IMDbPY 的最新版本是 6.2,它是在 Python 3 中实现的,并且已经删除了对 gccSQLObject 的依赖。此外,Python 包 MySQL-python 不适用于 Python 3,因此我们安装 mysqlclient 代替;见下文。 (mysqlclient的API兼容MySQL-python。)

对 IMDb 数据文件格式的更改

2017 年 12 月引入了对 IMDb 数据文件格式的更改,而 IMDbPY 6.2(当前版本)尚不适用于新的文件格式。 (请参阅this GitHub 问题。)

在解决此问题之前,请使用以旧格式发布的最新版 IMDd 数据,该格式可在 ftp://ftp.fu-berlin.de/pub/misc/movies/database/frozendata/ 获得。下载所有*.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 表没有问题。

编辑:如果希望使用 6.2 版的 IMDbPY 并需要外键,则需要在生成后手动将它们添加到数据库中。在添加外键之前,需要对数据进行非常少量的清理。此清理和需要添加的外键在this GitHub 问题中进行了描述。

【讨论】:

【参考方案4】:

已对 imdb 客户端进行了更新,并添加了一些文档,使得其中一些已过时。最新请参考updated docs。

【讨论】:

以上是关于IMDB to MySQL:将 IMDB 数据插入 MySQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章

Freebase:啥数据转储文件包含“imdb_id”?

将 IMDB 数据用于 sci-kit 回归模型包,该包在特征变量中具有文本值

tensorflow 教程 文本分类 IMDB电影评论

从 Keras 的 imdb 数据集中恢复原始文本

如何将 odoo 与 IMDb 集成?

IMDB影评倾向分类 - N-Gram