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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парсинг результататов поисковика. вытянуть нужное. 
:(
    Опции темы
DiverD
Дата 8.3.2006, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Где та видел на форуме но не нашел=)
мне нада выдрать ссылку из результата поисковика.
скажем зашел я на ya.ru прописал там "vingrad 2006 the foreva" и все ссылки который буду в точности совподать с шаблоном записать в переменную масив или скаляр - без разницы.
--------------------
[ FreeBSD & pERL p0WER eVERY dAY ]
PM MAIL   Вверх
nitr
Дата 8.3.2006, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Используй ре... они всегда помогут smile Или за тебя написать код? smile) Выложи свой, тут помогут модифицировать!


--------------------
PM   Вверх
DiverD
Дата 9.3.2006, 02:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



nitr
если не трудн напиши,я проста с cgi вот толька сегодня глову открыл,точнее книгу.
--------------------
[ FreeBSD & pERL p0WER eVERY dAY ]
PM MAIL   Вверх
nitr
Дата 9.3.2006, 03:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



cgi тут не при чём... LWP используй, а дальше регулярные выражения или как в книжках пишут ПОИСК ПО ШАБЛОНАМ


--------------------
PM   Вверх
sharq
Дата 9.3.2006, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

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



А точнее perldoc LWP::Simple и perldoc LWP::UserAgent.

smile


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
DiverD
Дата 9.3.2006, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



спасибо пацаны=)
будем дерзать!
--------------------
[ FreeBSD & pERL p0WER eVERY dAY ]
PM MAIL   Вверх
nitr
Дата 9.3.2006, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



b perldoc perlre А надо написать скрипт... пожалуйста в JOB smile жду предложений ;)


--------------------
PM   Вверх
DiverD
Дата 10.3.2006, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



короче возникла еще одна ситуация косвенно относящеясе к выше изложенной.

есть html страница с ссылками типа <a href="http://google.com">google.com</a> ну и аналогично.
мне нужна вывести саму ссылку,т.е. в маем случаю в массиве @result должны быть строки http://google.com
т.e. требуется все отбросить и толька вырезать сами ссылки.
{по моим предположениям в $1 должен быть url, но эта не так(}
помоги пожалуйсто уже 2й день не получается то что мне нада.

Код

#!/usr/bin/perl
use warnings;
    open(F,"<1.htm");    
while(<F>) {
    push @result,$_ =~ /<a href=(\".+\")>.*<\/a>/ig;
print "$1"; # эта я проста для проверки писал
        }
    close F;    
    open(RESULT,">resulT");
    print RESULT join "\n",@result;
    close(RESULT);


Это сообщение отредактировал(а) diverd - 10.3.2006, 22:05
--------------------
[ FreeBSD & pERL p0WER eVERY dAY ]
PM MAIL   Вверх
korob2001
Дата 10.3.2006, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Код

s/<a href=\"(.+?)\".*?>.*?<\/a>/push( @result, $1 )/eig;

Добавлено @ 22:34
А вообще, наверно, лучше делай вот так. smile
Код

#!/usr/bin/perl -w
use strict;
open( READ, "< file.html" ) or die $!;
open(WRITE, "> result.txt") or die $!;
s/href=(?:\"|\')?(.+?)(?:\"|\')(?:>|\s)/print WRITE qq[$1\n]/eig while (<READ>);
close(WRITE);
close(READ);


Это сообщение отредактировал(а) korob2001 - 10.3.2006, 22:38


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
nitr
Дата 10.3.2006, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Используем HTML::LinkExtor качать здесь, читать тут
Добавлено @ 22:53
Данный код модифицируем
Код

s/<a href=\"(.+?)\".*?>.*?<\/a>/push( @result, $1 )/eig;

на
Код

s%<a[^>]+?href\s*=\s*["']?([^'" >]+?)['"]\s*?>.*?<\s*?/a\s*?>%push( @result, $1."\n" )%ieg;


Это сообщение отредактировал(а) nitr - 10.3.2006, 22:54


--------------------
PM   Вверх
DiverD
Дата 11.3.2006, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

$B]korob2001 & nitr[/B] -> [большое спасибо,выручили проста офигительно]->[с меня пив0];

--------------------
[ FreeBSD & pERL p0WER eVERY dAY ]
PM MAIL   Вверх
Kannabismus
Дата 11.3.2006, 03:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тим Тоуди



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

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



Код

use WWW::Search;
use WWW::Search::Google;
use WWW::Search::Yandex;

PM   Вверх
DrTermiT
Дата 30.3.2006, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



для яндекса:
Код

use LWP::Simple;

sub ya_search(){ 
$i= get "http://www.yandex.ru/yandsearch?text=".@_[0];
$\="\n";
return @str_find = ($i =~ /\'\)\" href\=\"(.*)\" target/g);
}

#вывод ссылок по слову собачки.
@searches= &ya_search("собачки");
foreach $tmp (@searches) {
    print "$tmp\n";
}


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


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

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


 




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


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

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