7

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

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

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

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

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

4

4 回答 4

6

有一些不错的 py 脚本,女巫帮助了我。只需建立连接并运行它。约 1 小时来解决所有问题。

编辑:使用此自述文件制作脚本。

于 2011-08-30T14:04:07.783 回答
2

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

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

对 IMDbPY 的更改

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

更改 IMDb 数据文件格式

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

在解决此问题之前,请使用以旧格式发布的最新版本的 IMDd 数据,该格式可在ftp://ftp.fu-berlin.de/pub/misc/movies/database/frozendata/获得。下载所有*.list.gz文件(不包括子目录中的文件)。

要遵循的新步骤

  1. 安装 Python 3 和所需的包:

    sudo apt install python3
    pip3 install mysqlclient
    
  2. 在 MariaDB 中,创建一个数据库,并 使用密码imdb授予所有权限。userpassword

    CREATE DATABASE imdb;
    GRANT ALL PRIVILEGES ON imdb.* TO 'user'@'localhost' IDENTIFIED BY 'password';
    FLUSH PRIVILEGES;
    
  3. 获取 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
    
  4. 将 IMDb 数据加载到 MariaDB:

    cd bin
    python3 imdbpy2sql.py -d [imdb_dataset_directory] -u 'mysql://user:password@localhost/imdb'
    

编辑: IMDbPY 6.2 版不创建外键。请参阅GitHub 问题。如果您需要创建外键,您将需要使用旧版本的 IMDbPY,但也报告了旧版本中外键生成的问题(请参阅链接的 GitHub 问题)。

更新:导入需要 4.5 小时,我使用 InnoDB 表没有问题。

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

于 2018-02-12T01:21:52.477 回答
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”,密码为“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

从“从纯文本文件导入 IMDb 数据集到 MySQL 数据库”中借用一些小修复。

于 2017-04-07T01:08:06.480 回答
0

对 imdb 客户端进行了更新,并添加了一些文档,使得其中一些已过时。有关最新信息,请参阅更新的文档

于 2020-09-26T01:59:09.540 回答