Dmitry Astapov (_adept_) wrote,
Dmitry Astapov
_adept_

Category:

Поиск по русским именам фильмов на imdb.com и автоматическое извлечение данных о фильме оттуда же

Сегодня я с некоторым офигением обнаружил, что можно вбить в Google поисковый запрос "Кто вы, мистер Брукс? site:imdb.com" и получить первым результатом ссылку на страницу этого фильма на imdb.com.

Не выходя из состояния офигения, я достал из загашников старый полу-работающий скриптик для извлечения основных данных о фильме с imdb.com и довел его до работоспособного состояния.

Кому интересно, скрипт и пример его использования - под катом.

Вот скрипт:

#!/bin/bash
request="$@"
file="imdb_dump.html"

wget -U Firefox "http://www.google.com/search?q=$request site:imdb.com&btnI=I\`m Feeling Lucky" -O "$file"

title=$(grep "<title>" "$file" | sed -e 's/<[^ ]*>//g')
rating=$(grep -A1 "<b>User Rating:</b>" "$file" | grep -o '[0-9][0-9./]*')
votes=$(grep -o '[0-9,]* votes' "$file")
genre=$(grep -A1 "<h5>Genre:</h5>" "$file" | grep -o ">[A-Z][a-zA-Z]*<" \
               | sed -e 's/[<>]//g' | paste - - - - - - - - - | sed -e 's/[ \t]*$//' -e 's/\t/,/g')
url=http://www.imdb.com/$(grep -o 'title/tt[0-9]*' "$file" | head -1)

echo "$request|$title|$url|$genre|$rating|$votes" | tee -a movies.csv


Запустив скрипт (пусть он лежит в файле imdb-search.sh) вот так: "imdb-search.sh Кто вы, мистер Брукс", вы получите на экране такой вот результат:


Кто вы, мистер Брукс?|Mr. Brooks (2007)|http://www.imdb.com/title/tt0780571|Crime,Drama,Mystery,Thriller|7.6/10|27,269 votes


Все эти данные будут продублированы в файле movies.csv, в текущей директории. Можно сделать несколько запросов, загрузить movies.csv в oocal или excel и там их покрутить.

PS
Это в связи с вновь доступным "безлимитным" интернетом мы разгребаем список "а вот это, возможно, хотелось посмотреть" :)
Tags: imdb, linux
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 31 comments