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

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

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

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

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

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

【问题讨论】:

    标签: php python mysql sql imdb


    【解决方案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 文件(不包括子目录中的文件)。

      要遵循的新步骤

      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'
        

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

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-01-25
          • 1970-01-01
          • 2013-05-14
          • 2023-04-10
          • 2013-05-29
          • 1970-01-01
          • 1970-01-01
          • 2021-05-30
          相关资源
          最近更新 更多