С нами с 30.06.03
Сообщения: 794
Рейтинг: 202
|
Добавлено: 25/10/04 в 22:07 |
если не жалко кинтье в этот топик
|
|
Я бы взял частями, но мне нужно сразу=))
|
0
|
|
|
С нами с 30.06.03
Сообщения: 794
Рейтинг: 202
|
Добавлено: 25/10/04 в 22:11 |
я бы сам написал только regexp не знаю на данный момент
а стрреплейсом ворочать не хочется
|
|
Я бы взял частями, но мне нужно сразу=))
|
0
|
|
|
С нами с 27.02.03
Сообщения: 873
Рейтинг: 402
|
Добавлено: 25/10/04 в 22:34 |
А алгоритма вычисления ch для пыжранка не надо?
(зы никто тебе ничего не кинет - сам подумай почему)
|
|
|
|
С нами с 30.06.03
Сообщения: 794
Рейтинг: 202
|
Добавлено: 25/10/04 в 22:44 |
perlmaster писал: | А алгоритма вычисления ch для пыжранка не надо? |
Спасибо, у меня есть.
|
|
Я бы взял частями, но мне нужно сразу=))
|
0
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 26/10/04 в 05:25 |
|
|
|
|
С нами с 25.12.03
Сообщения: 1003
Рейтинг: 462
|
Добавлено: 26/10/04 в 16:10 |
стучись
icq: 170636917
|
|
|
|
С нами с 15.09.03
Сообщения: 484
Рейтинг: 210
|
Добавлено: 26/10/04 в 16:16 |
perlmaster писал: | А алгоритма вычисления ch для пыжранка не надо?
(зы никто тебе ничего не кинет - сам подумай почему) |
тут уже кидали..
а вообще, что , парсер гугла это такая страшная тайна? за час пишется без проблем
|
|
|
|
С нами с 30.06.03
Сообщения: 794
Рейтинг: 202
|
Добавлено: 26/10/04 в 17:12 |
Парсер гугла есть тайна великая
Вот, прямо с локалхоста, тепленький еще
Цитата: |
<?
//****************************************************************************//
function GetPage($url,$pageurl,$proxy,$port)
{
$fp=fsockopen($proxy,$port,$errno,$errstr,'600');
fputs($fp, "GET $url$pageurl HTTP/1.0\r\nHost: $proxy\r\n\r\n");
$page="";
$page_out="";
while(!feof($fp))
{
$buf=trim(fgets($fp,4096));
$pos=strpos($buf,'<p class=g>');
if($pos!==false)
{
$parts=explode('<p class=g>',$buf);
$parts2=explode('http://',$parts[1]);
$parts3=explode('>',$parts2[1]);
$page_out_temp=$parts3[0];
$page_out_temp=trim($page_out_temp);
$page_out_temp=$page_out_temp."\n";
$page_out=$page_out.$page_out_temp;
}
}
fclose($fp);
echo '*';
flush();
return $page_out;
}
//****************************************************************************//
function GoogleResult($query,$proxy,$port)
{
$allpages='';
$url='http://www.google.com/';
$pageurl="search?hl=en&q=$query&btnG=Google+Search";
$main_page=GetPage($url,$pageurl,$proxy,$port);
$allpages=$allpages.$main_page;
for($x=10;$x<1010;$x=$x+10):
$url='http://www.google.com/';
$pageurl="search?q=$query&hl=en&lr=&start=$x&sa=N";
$main_page=GetPage($url,$pageurl,$proxy,$port);
$allpages=$allpages.$main_page;
endfor;
$allpages=trim($allpages);
$allpages=explode("\n",$allpages);
$allpages=array_unique($allpages);
$file_out=fopen("out.txt","w+");
$temp_out="";
for($z=0;$z<count($allpages);$z++):
$temp_out=$temp_out.$allpages[$z]."\n";
endfor;
$temp_out=trim($temp_out);
fwrite($file_out,$temp_out);
fclose($file_out);
echo 'Done';
flush();
}
//****************************************************************************//
$query='porn';
$proxy='62.135.103.130';
$port='8080';
GoogleResult($query,$proxy,$port);
//****************************************************************************//
?>
|
Складывает результаты в out.txt
Для работы нужно установить php таймаут побольше.
Если страниц в выдаче меньше ста все равно забирает сто, влом
писать определялку сколько страниц в выдаче, проблема решается
удалением одинаковых значений из массива.
Работает через проксю
Пользуйся наздоровье и стар, и млад
|
|
Я бы взял частями, но мне нужно сразу=))
|
0
|
|
|
С нами с 30.06.03
Сообщения: 794
Рейтинг: 202
|
Добавлено: 26/10/04 в 17:29 |
Притензии 'у тебя код хуевый' оставтье при себе
|
|
Я бы взял частями, но мне нужно сразу=))
|
0
|
|
|
БешаныйСуслег
С нами с 16.06.04
Сообщения: 1322
Рейтинг: 1338
|
Добавлено: 26/10/04 в 20:57 |
Имхо лучше/правильнее/удобнее/быстрее возъюзать SOAP Google API.
Код не привожу по причине на которую намекали выше
|
|
|
|
С нами с 25.12.03
Сообщения: 1003
Рейтинг: 462
|
Добавлено: 27/10/04 в 03:25 |
google api руль для небольших объемов поисков
|
|
|
|
С нами с 26.08.04
Сообщения: 46
Рейтинг: 42
|
Добавлено: 27/10/04 в 12:14 |
Alpha_Juno писал: | если не жалко кинтье в этот топик |
#!/usr/bin/perl -w
# google_box.pl
# A classic Google box implementation
# Usage: perl google_box.pl <query> <# results>
# Your Google API developer's key
my $google_key=''вашключ";
# Location of the GoogleSearch WSDL file
my $google_wdsl = 'GoogleSearch.wsdl';
use strict;
use SOAP::Lite;
# Bring in those command-line arguments
@ARGV == 2 or die "Usage: perl googlebox.pl <query> <# results>\n";
my($query, $maxResults) = @ARGV;
$maxResults = 10 if ($maxResults < 1 or $maxResults > 10);
my $google_search = new SOAP::Lite ->
service('file:./GoogleSearch.wsdl');
# service('http://api.google.com/GoogleSearch.wsdl');
# Query Google
my $results = $google_search ->
doGoogleSearch(
$google_key, $query, 0, $maxResults, "false", "",
"false", "", "latin1", "latin1"
);
# No results?
@{$results->{resultElements}} or die "no results";
print join "\n",
map( {
qq{<a href="$_->{URL}">($_->{title}</a><br /> } .
#($_->{title} || $_->{URL} || $_->{snippet}) .
($_->{snippet}) .
qq{</a> <br />}
#qq {($_->{snippet})} .
} @{$results->{resultElements}} );
#источник http://hacks.oreilly.com/pub/h/187
|
|
|
|