Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Ваши программы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.06.2010, 00:41
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию L2db.ru Icon grabber

Предистория
Писал я биржу для своего сервера 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 и других материалов.
Вложения
Тип файла: rar l2db grabber.rar (2.3 Кбайт, 29 просмотров)
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #2  
Старый 05.06.2010, 00:53
Аватар для urahara
urahara urahara вне форума
Новичок
 
Регистрация: 16.01.2010
Сообщения: 86
Репутация: 35
По умолчанию

а импортировать из ресурсов игры не пробывал?
__________________
Arrrgh
Ответить с цитированием
  #3  
Старый 05.06.2010, 01:21
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Из ресурсов вытащить невозможно, ибо там они хранятся в таком виде, что по именно ID к ним не подлезть вообще. Если интересно, поищи инфо по теме "Lineage icon.utx extract"
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #4  
Старый 05.06.2010, 01:46
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

И сразу - версия "2.0"

Поняв, что предыдущая версия, хоть и не сразу, но таки вылетает - я решил отловить все возможные моменты, более того, сделать автоперезапуск загрузки последней иконки.
Ещё, перевёл программу со старой версии сайта на новую, более полную...
Так же, добавил проверку, скачивалась ли картинка с заданным ID, если да - то пропустить.
И, наконец, теперь прога всё-таки реагирует на нажатие крестика, а не крутится до тех пор, пока всё не сольёт.
Вложения
Тип файла: rar l2db grabber.rar (2.2 Кбайт, 14 просмотров)
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 05.06.2010 в 01:50.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:35.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter