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

时间:2011-08-30 13:53:39

标签: php python mysql sql imdb

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

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

我跟随了一位导游,但大约一半我意识到这是一本2004年的指南,现在的工作方式与七年前的工具相比并不顺利。

我浏览过网络应用程序,php脚本,python脚本以及什么不能找到解决方案但没有运气。 IMDB自己引用的W32工具也不起作用。

有没有人知道解决方案或方法来执行此任务?

4 个答案:

答案 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中实现,并且gccSQLObject的依赖关系已被删除。此外,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个文件(不包括子目录中的文件)。

要遵循的新步骤

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

    sudo apt install python3
    pip3 install mysqlclient
    
  2. 在MariaDB中,创建一个数据库imdb,并将所有权限授予user 密码为password

    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'
    
  5. 编辑: 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