Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проверка ссылающейся ссылки, проверить линк на присутствие 
:(
    Опции темы
Paul56
Дата 12.2.2010, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 19.9.2008
Где: Екатеринбург

Репутация: нет
Всего: нет



Здравствуйте!
Подскажите пожалуйста, у меня стоит задача проверить внешнюю ссылку на целостность, то есть есть ли она на странице какого либо сайта или нету. Хотелось бы поинтересоваться, кто как поступает?
Предположим я получил код страницы через LWP, а дальше кто, что делает, есть у кого опыт в таких вещах ?
PM ICQ   Вверх
DEER
Дата 14.2.2010, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: 2
Всего: 13



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


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
krypt3r
Дата 15.2.2010, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 9.6.2009

Репутация: нет
Всего: 16



Проще послать HEAD-запрос и его смотреть.
PM MAIL   Вверх
tishaishii
Дата 15.2.2010, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: нет
Всего: 8



smile)) А я на сервере по запросу типа HEAD всегда выдаю &HTTP_OK();, над формированием правильных заголовков не парюсь и проверкой правильности запроса не занимаюсь. Зачем сервер грузить обработкой всяких HEAD...

Код

use IO::Socket;

my$host='www.perl.org';
my$sock=IO::Socket::INET->new(
PeerAddr => $host,
PeerPort => 'http(80)',
Proto    => 'tcp'
);
my$doc='/';
$sock->print(<<".");
GET $doc HTTP/1.0
Host: $host
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5\n\n
.
my$ok=scalar(<$sock>)=~m{\b200\b}os;
$sock->close;


А кроме ответа 200 стоит проверять ещё ответы 3** (редиректы).

Это сообщение отредактировал(а) tishaishii - 15.2.2010, 15:08
PM MAIL ICQ Skype   Вверх
Nab
Дата 22.2.2010, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 8
Всего: 37



Уважаемые ответчики, вы блин вопрос то поняли?

Человек спросил как узнать наличие ссылки на странице, а не существование самой страницы. Я так подозреваю ему нужно проверять как на других ресурсах на его страницу ссылку поставили. Применяется при поисковой оптимизации, при добавлении в каталог и просто как обмен ссылками.


А по существу, Paul56, то воспользуйтесь модулем HTML::LinkExtractor. Он именно для этого предназначен.


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Paul56
Дата 25.2.2010, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 19.9.2008
Где: Екатеринбург

Репутация: нет
Всего: нет



Спасибо за ответ Nab.
Именно этим модулем и решил  задачу.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.