![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Предистория
Писал я биржу для своего сервера Lineage... писал, писал.. и вот встала передо мной задача, показать юзерам иконки предметов, которые они хотят купить/продать. Самому скринить 20'000+ иконок из игры - не то что некогда - впадлу. Толковой базы в приемлемом формате я не нашёл. И тогда у меня возникла идея - распарсить иконки с сайта l2db.ru Процесс написания Что мне было нужно? В начале, понять, как получается строка адреса. А строка вышла вида Код:
http://old.l2db.ru/item.php?id=9449 Код HTML:
1. Скачать с сервера страницу /item.php?id=ITEM_ID, где ITEM_ID - число от 1 до, допустим, 20000. 2. Определить, есть ли на ней иконка (предметы с некоторыми ID не существуют) 3. Скачать эту иконку, и сохранить куда-нибудь. По мере тестирования, обнаружилось, что есть предметы, у которых иконка есть, но в базе её нету. Тогда, всё это дело выдавало "Error 404", и сваливалось. А прога должна висеть всю ночь, и работать без вмешательства... После некоторых модификаций, алгоритм выглядел так: 1. Получить адрес страницы вида "http://old.l2db.ru/item.php?id=N" 2. Проверить, есть ли страница на сервере 3. Если есть, скачать её, распарсить, и получить ссылку на картинку, если таковая на странице присутствует. 4. Проверить наличие картинки на сервере 5. Если она там есть - скачать и сохранить её. Простейший парсер написан, готовый (исходники) в архиве. Пока я писал этот текст, с учётом моего 5-МБитного канала, прога выкачала 1300 картинок. Парсер достаточно просто может быть переделан под любой сайт, было бы желание... Наслаждайтесь. P.S. Данный пост не является рекламой Lineage, L2db.ru и других материалов. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |