2011-08-30 219 views
6

我正在尋找一種解決方案,將所有IMDB數據導入到我自己的MySQL數據庫中。我已經從他們的主頁下載了所有的IMDB數據文件,它們都是文件格式* .list(在Windows中)。IMDB到MySQL:插入IMDB數據到MySQL數據庫

我想檢索和信息,並將其正確插入到我的MySQL數據庫,所以我可以做一些測試和查詢搜索。

我遵循了一個指南,但大約一半我意識到這是一個2004年的指南,現在的工作方式現在不適用於七年前的工具。

我已經瀏覽了應用程序,php腳本,python腳本和什麼不找到解決方案,但沒有運氣的網。 IMDB自己引用的W32工具也不起作用。

有沒有人知道一個解決方案或方法來完成這項任務?

回答

6

還有一些nice py script,女巫幫了我。只需建立連接並運行它。約1小時解決一切。

編輯:使用this readme file製作腳本。

+1

謝謝一堆。那正是我想要的。花了大約4個小時,但現在我用IMDB獲得了一個不錯的3GB數據庫:-) – Mestika

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」,並授予所有的權限爲 「用戶」,密碼爲 「密碼」。

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:[email protected]/imdb' --mysql-force-myisam 

從 「Import IMDb Data Set from Plain Text Files To MySQL Database」 借用一些小的修正。

0

對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數據文件格式

更改IMDB的數據文件在2017年12月推出的格式,並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:[email protected]/imdb' 
    

編輯:版本IMDbPY的6.2不創建外鍵。請參閱this GitHub問題。如果需要創建外鍵,則需要使用舊版本的IMDbPY,但也有舊版本中生成外鍵的報告問題(請參閱鏈接的GitHub問題)。

更新:導入需要4.5小時,使用InnoDB表格我沒有問題。

編輯:如果希望使用IMDbPY版本6.2並需要外鍵,那麼在生成後需要將它們手動添加到數據庫中。在添加外鍵之前,需要對數據進行非常少量的清理。這個清理和需要添加的外鍵在this GitHub問題中描述。