![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Я хочу написать что то типа небольшой поисковой системы (в образовательных целях). Для этого мне нада сканировать страницу и вынимать из нее все ссылки, в том числе и на картинки. Я знаю что для получения кода можно использовать LWP::Simple, но не знаю как и не знаю как потом выделить из него ссылки.
Заранее спасибо. |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Что-то типа этого. Извини, времени в обрез. Если что-то не понятно дай знать. Этот шаблон быдёргивает только ссылки начинающиеся с http, потому как от таких ссылок ../../guest/book.cgi, толку мало. Возможно нужно будет доработать шаблон, потому как я его толком не тестировал. Это сообщение отредактировал(а) korob2001 - 26.2.2005, 23:02 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
А модуль LWP::Simple - стандартный или его нет в обычном дистрибутиве?
|
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Стандартный.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Это очень хорошо. И еще, спасиба, тебе. Все работает. Но хотелось бы все ссылки, в том числе и на картинки так как поисковик все же должен сканировать весь сайт. А основная цель моего поисковика- картинки.
|
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
С каким расширением картинки нужны? .jpg .gif .bmp???? -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Все. Включая png и т.д. И попутно нада бы еще собирать инфу о их размере и разрешении. А вообще идеально- скачивать, перекодировать в jpg с качеством 60 и уменьшать до 100 пикселов примерно.
|
|||
|
||||
| Sadok |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.11.2004 Репутация: 1 Всего: 2 |
Я вот так ссылки вырезаю. |
|||
|
||||
| rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Спасибо, вечером проверю как будет работать у меня. Код правда мне не ясен, но пару знакомых букв я все же нашел
|
|||
|
||||
| rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Код работает хорошо, спасибо.
Мне предложили 2 способа. Какой лучше? Какой работает быстрее и выбирает большее колличество ссылок? А то первый вариант собирает точно не все <a href="asdasd.werwer.ru"> Он найдет, но если будут пробелы между = или он будет без ковычек, то все... Второй способ как я понял работает напрямую с сервером и вынимает ссылки по средсьвом специального модуля. Насколько это удобно? Он все пихает в один массив, а мне мылы надо в один, локальные ссылки в другой, а глобальные в третий. А как перерабатывать картинки никто не знает? Или хотя бы как получить сведения о их размере и разрешении и при желании скачать. |
|||
|
||||
| korob2001 |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
С каждым из них нужно работать, потому как это только заготовки. Есть конечно же ещё и другие пути, например: стандартный модуль HTML::Parser.
Если у тебя есть один массив со всеми ссылками, то что стоит его разбросать по группам? Это гараздо проще, чем парсить HTML страничку.
Здесь тебе помугут модули GD, Image::Magick, Image::Size. Почитай документацию по этим модулям. Будут конкретные вопросы, пиши. Удачи. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||
|
|||||||
| rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Шпасиба
|
|||
|
||||
| Usya |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Здравствуйте, я не стал создавать новой темы, так как задача похожая, но немножко потруднее...
Как выкачать все ссылки с сайта? Вернее необходимо проверить все линки (локальные, глобальные) на наличии ключевой комбинации символов, но для этого их надо сначала выкачать... Может кто-нибудь сталкивался с этим? Думал сделать это через wget - он то позволяет выкачивать сайты целиком, но не смог найти, как выкачать только линки. Должен же быть какой-нибудь простой способ. Заранее благодарен. --------------------
Я не волшебник, я только учусь... |
|||
|
||||
| Morgul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 16.7.2005 Репутация: нет Всего: нет |
Usya, наверное, надо просто собирать линки и анализировать их (если внутренние, дальше топаем).
я вот этим модулем пользуюсь для сбора ссылок: HTML::LinkExtor |
|||
|
||||
| Usya |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Спасибо за совет
На счет модуля HTML::LinkExtor здесь уже немного упоминалось Единственное два но: 1) Мне придется делать запрос, чтоб на серваке установили этот модуль...(хотя это решаемо)... 2) Придется лазить по каждой странице... Почему то кажется, что должен быть более простой способ. В т.ч., например, с wget. Ведь с помощью wget можно выкачивать сайты целиком. Скорее всего должна быть возможность выкачивания только линков, но я не нашел как... --------------------
Я не волшебник, я только учусь... |
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |