Image

Listens: Nightwish — [Imaginaerum CD1 #08] Turn Loose The Mermaids

Categories:

Музыкальное

Чуть больше, чем 1.5 года назад я обещал выложить относительно работающий скриптик, который парсит Википедию в поиске новых альбомов моих любимых исполнителей. В тот раз его запуск на списке из 104 элементов выдал 42 упущенных альбома. В этот, на 116 — 43. Хорошо, что я успел сделать это до публикации своего ежегодного музыкального топа, а то бы пришлось и его инвалидировать :)

Пример результата работы (Народ его слегка заcp1251ил, заutf8те обратно)
Сам скрипт на PHP (берегите глаза, спагетти!)
Список исполнителей в текстовом файле (cp1251)

Как с этим поиграться? В PHP 5.4 (пока только RC4) сделали встроенный веб-сервер, так что процесс всяких игр с LAMP-связкой заметно упростился, в данном конкретном случае — до одной единственной буквы P.

  1. Скачайте PHP 5.4RC4 (или любой новее / для вашей ОС) и распакуйте куда-нибудь;

  2. Положите в эту же папку скачанный index.php;

  3. Наберите в текстовом файле groups.txt (cp1251) в той же папке список ваших любимых исполнителей построчно;

  4. Зайдите в папку из консоли и выполните команду php.exe -S localhost:80 — она запустит HTTP-сервер (доступный только локально), корнем для которого будет являться папка с PHP;

  5. В браузере перейдите по адресу http://localhost/;

  6. Обновляйте страницу, пока скрипт не скачает весь нужный ему интернет (страницы с википедии и last.fm) в папку cache/ — когда это произойдет, он перестанет выдавать Fatal error: Maximum execution time of 30 seconds exceeded;

  7. Расчехляйте торр Наслаждайтесь приятной музыкой;

  8. Убить сервер можно, нажав в консоли Ctrl-C.


Русских исполнителей парсит исключительно гадостно. Если можете предложить локальные изменения, которые заметно улучшают результат — welcome. Найденная экспериментально оптимальная частота запуска скрипта — раз в год :)