PDA

Просмотр полной версии : Помогите дописать скрипт [Perl]


$p01nt
10.03.2009, 17:36
Итак, хочу сделать парсер id юзеров с сайта hi5, получается сделать поиск, но только по первой странице, на вторую кликнуть не могу и дальше тоже не пускает, уже весь измучился :(
Кто поможет - получит кучу плюсов :)


use warnings;
use strict;
use HTTP::Cookies;
use LWP::UserAgent;

my $browser = LWP::UserAgent->new();
my $cookies = HTTP::Cookies->new();
$browser->cookie_jar($cookies);

open(ID,">>id.txt");

my $url='http://hi5.com/friend/processSearch.do?searchNew=1&fromPage=%2Ffriend%2FWEB-INF%2Fsearch%2FsearchTotal.jsp&fromEmail=0&oldSearchString=&email=&name=&ageFrom=30&ageTo=50&gender=0&loveStatus=1069&goals=&country=1018&zip=&city=&miles=5&miles=0';
my $url2='http://hi5.com/friend/processSearch.do?searchText=&searchType=advanced&offset=10&qx=People+Search+';

my $response=$browser->get($url);
$browser->default_header('Referer'=>'http://hi5.com/friend/processSearch.do?searchNew=1&fromPage=%2Ffriend%2FWEB-INF%2Fsearch%2FsearchTotal.jsp&fromEmail=0&oldSearchString=&email=&name=&ageFrom=30&ageTo=50&gender=0&loveStatus=1069&goals=&country=1018&zip=&city=&miles=5&miles=0');

$response=$browser->get($url2)->as_string;
open(GOPOD,">gso.html"); print GOPOD $response;

roddik
10.03.2009, 20:35
use strict;
use warnings;
use WWW::Mechanize;

open IDS, '>>ids.txt';

my $mech = WWW::Mechanize->new();
my $url = q[http://www.hi5.com/friend/processSearch.do?searchNew=1&fromPage=%2Ffriend%2FWEB-INF%2Fsearch%2FsearchTotal.jsp&fromEmail=0&oldSearchString=&email=&name=&ageFrom=18&ageTo=35&gender=2&loveStatus=0&goals=&country=1000&zip=&city=&miles=0&miles=0];
my @agents = ('Windows IE 6', 'Windows Mozilla', 'Mac Safari', 'Mac Mozilla', 'Linux Mozilla', 'Linux Konqueror');

$mech->agent_alias($agents[int(rand(@agents))]);
$mech->get($url);

my $i = 0;
do {
$i++;
my @friends = $mech->content =~ m[Position\d+" href="/friend/p(\d+)\-\-]g;

print IDS (join "\n", @friends)."\n";
} while ($mech->get('http://www.hi5.com/friend/processSearch.do?searchText=&searchType=advanced&offset='.$i.'0&qx=People+Search+'));

close IDS;

$p01nt
11.03.2009, 11:32
roddik, а ты проверял? У тебя та же самая ошибка что и у меня...только ты зачем то переписал это на WWW::Mechanize.....

roddik
11.03.2009, 16:17
Проверял конечно, все пашет, если надо могу отпарсить тебе айдишники, какая у тебя ошибка?

[dei]
11.03.2009, 17:33
ошибку напиши сюда

$p01nt
12.03.2009, 12:13
Все гуд, приношу извинения, на другом компе все заработало!