
18.12.2007, 20:14
|
|
Гарант Форума
Регистрация: 22.01.2005
Сообщений: 267
Провел на форуме: 1982081
Репутация:
1067
|
|
2dword
1) исправлено
2) исправлено
3) исправлено
2kib
исправлено
делал для того, чтобы при подвисании скрипта сохранились данные за последнию итерацию, не использовал "a", потому что надо было чтобы при новом запуске скрипта файл очищался. сейчас немного по другому сделал, файл либо создается, либо очищается при старте и информация записывается после каждого прохода
2all
я тут немного не понял суть претензий - я вообще-то накатал скриптег за некоторое время и скинул в топ, в надежде помочь. критерием оценки работы служило "лишь бы работало". в общем я все замечания учел, но все же, я же не за деньги это делаю, так что надо бы понимать что это просто сэмпл, а не какой-то готовый продукт. шевелите мозгами иногда.
код:
PHP код:
<?php
$host = "www.google.com";
$query = "snitch";
$num = 20;
$filename = "links.txt";
$handle = fopen($filename, "w");
fclose($handle);
function grab_links($page)
{
$links = "";
$result = preg_split('/<span class=a>| - [0-9]*k - <\/span>/i', $page);
for ($i = 1; $i < 20; $i += 2)
{
$clean = str_replace("<b>", "", $result[$i]);
$clean = str_replace("</b>", "", $clean);
$clean = str_replace(" ", "", $clean);
$links .= "$clean\r\n";
}
return $links;
}
for ($n = 0; $n <= $num; $n += 10)
{
$request = "GET /search?q=".urlencode($query)."&start=$n HTTP/1.0\r\n";
$request .= "Host: $host\r\n";
$request .= "Connection: Close\r\n";
$request .= "\r\n";
$sock = fsockopen($host, 80, $errno, $errstr, 10);
stream_set_timeout($sock, 60);
fputs($sock, $request);
while(!feof($sock)){$page .= fgets($sock);}
fclose($sock);
$links = grab_links($page);
//echo $links;
$page = "";
$handle = fopen($filename, "a");
fwrite($handle, $links);
fclose($handle);
}
?>
з.ы
минусов много, скрипт собирает лишние ссылки с рекламы и прочего, так как регекспы писались тоже на скорую руку. правьте сами по желанию.
Последний раз редактировалось .::Gh0st::.; 18.12.2007 в 20:22..
|
|
|