К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

А по Perl есть спецы?

Гость
0 - 29.12.2012 - 08:56
Помогите плиз.
Что нужно в кратце: послать скрипту IP адрес, в ответ получить ссылку на картинку с флагом соотв. страны. Мутить самому с использованием файла соответствий - лениво.
Пишу:
$ua=LWP::UserAgent->new;$ua->agent("MSIE 7.0 ");
$url="http://www.ipcountry.org/index.php?searched_ip=$ip";
$req=HTTP::Request->new(GET =>$url); $req->header('Accept'=>'text/html');$res=$ua->request($req);@res=$res->content;
В @res у меня вся ответная страница. На этой странице есть требуемая картинка. Как мне выпарсить ее оттуда?
Спасибо!



Гость
1 - 29.12.2012 - 08:58
А точнее нужно выцепить всё и в таком виде:
I.P address : 1.1.1.1 <br>
Host : 1.1.1.1 <br>
Provider : Provider <br>
Country : [Здесь <img src картинки>] Russian federation. <br>
Country code : RU
2 - 29.12.2012 - 12:09
split
foreach
if()**
...
**
Гость
3 - 29.12.2012 - 12:33
(2) @res - HTML страницы целиком. Какой split?
А @res это вообще не массив а чорт знает что.
foreach (@res) ** print $_ ** - один единственный проход у цикла, $_ равна @res.
Гость
4 - 29.12.2012 - 12:35
Регуляркой дёрнуть или в чём вопрос?
Гость
5 - 29.12.2012 - 12:51
(4) Я плохо представляю как из этой каши(целая HTML страница) что либо дернуть регуляркой.
Я не прошу готовый код - примерчик бы...
А может в интернете уже есть где такой сервис? Ты ему IP - а он тебе картинку
6 - 29.12.2012 - 21:28
????? ламо?
разбери свой "чорт знает что" на строки и сверяй с шаблонами.
Гость
7 - 01.01.2013 - 13:32
(6) Тупой??? Или по выпендриваться надо??
Я в парсинге не бум-бум - так понятно?? Прошу помощи.
А ты не пиши сюда больше.
Гость
8 - 01.01.2013 - 13:35
@res - это не массив. Да и с какой стати?? По чему я сплитить буду, по >< ??
Гость
9 - 04.01.2013 - 14:18
...
$res=$ua->request($req);
$page=$res->content;
if ($page =~ /img src='flags\/(.+?\.png)'/i) **
$flag_url = "http://www.ipcountry.org/flags/$1";
**
Гость
10 - 08.01.2013 - 10:09
если в парсинге не бум-бум, то лучше юзать сервисы которые отдают данные например в JSON, типа вот этого http://ipinfodb.com/ip_location_api_json.php
только я про флаги не уверен, но думаю что с флагами есть что-то похожее
Гость
11 - 08.01.2013 - 19:22
а не проще ли использовать Net::Whois::Raw
да и работать быстрее должно, считай обращается к первоисточникам

использовать очень просто, а отпарсить ещё проще:

use Net::Whois::Raw;

my $result=whois('192.168.1.1');


К списку вопросов






Copyright ©, Все права защищены