Не работает парсер кэша google

[Удален]
1279

Народ посмотрите пожалуйста, что может быть не так, вот весь скрипт:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>Google Cache Dumper - дампер кеша Google</title>
<style type="text/css">
body {
background-color: #DDDDDD;
font-family: "Trebuchet MS", Arial, sans-serif;
}
h1, h2 {
font-family: serif;
text-align: center;
}
#page {
background-color: #FFFFFF;
border: 2px solid #AAAAAA;
margin: 0 auto;
padding: 20px;
width: 80%;
}
span.help {
cursor: help;
}
div.error {
border: 1px solid #AA0000;
background-color: #FFAAAA;
padding: 5px;
}
.google {
font-size: 1.2em;
}
</style>
</head>
<body>
<div id="page">
<h1>Google Cache Dumper - дампер кеша <span class="google"><span style="color:#184DC6">G</span><span style="color:#C61800">o</span><span style="color:#EFBA00">o</span><span style="color:#184DC6">g</span><span style="color:#31B639">l</span><span style="color:#C61800">e</span></span></h1>
<form action="<?=basename(__FILE__)?>">
<table align="center" cellpadding="4">
<tr>
<td>
<span class="help" title="Сайт, который будем скачивать">Домен</span>
</td>
<td>
<input type="text" name="domain" value="<?=$_GET['domain']?>">
</td>
</tr>
<td>
<span class="help" title="Количество страниц выдачи, которые будут распарсены. 0 - парсить все.">Количество страниц</span>
</td>
<td>
<input type="text" name="p" value="<?=isset($_GET['p'])?$_GET['p']:0?>">
</td>
</tr>
<tr>
<td>
<span class="help" title="Задержка между запросами, миллисекунды">Задержка</span>
</td>
<td>
<input type="text" name="sleep" value="<?=isset($_GET['sleep'])?$_GET['sleep']:1000?>"> мсек.
</td>
</tr>
<tr>
<td align="center" colspan="2">
<?php
if(is_dir('./out/') && is_writeable('./out/')) {
?>
<input type="submit" name="submit" value="Начать">
<?php
} else {
unset($_GET['submit']);
?>
<div class="error">Папка ./out/ должна существовать и быть доступной для записи!</div>
<?php
}
?>
</td>
</tr>
</table>
</form>
<?php
set_time_limit(0);
function dbg($var)
{
echo '<pre>';
echo var_dump($var);
echo '</pre>';
}

function say($str)
{
static $n = 0;
echo "Msg #$n: $str<br>";
flush();
$n++;
}

if(isset($_GET['submit']))
{
$domain = $_GET['domain'];
$sleep = $_GET['sleep']*1000;
$p = $_GET['p'];

// Start parsing
$pages = array();
$parse = true;
for($i = 0; $parse && ($i < $p || $p == 0); $i++)
{
$page = file_get_contents('http://www.google.com/search?num=50&hl=ru&q=site:'.$domain.'&start='.$i*50 .'&sa=N');//('search.html');
$parse = preg_match_all('#<cite>([^<]+) - [0-9]+k - </cite>#', $page, $matches);
foreach($matches[1] as $link)
{
$pages[] = $link;
say('Page found: '.$link);
}
usleep($sleep);
}
say('<b>Parsing finished!</b>');
$dir = 'out/'.$domain;
@mkdir($dir, 0777);
chmod($dir, 0777);

say('<b>Starting downloading cache...</b>');
foreach($pages as $page)
{
$part = parse_url('http://'.$page);
$container = $dir.'/'.$part['host'];
$file = $container.(($part['path']{strlen($part['path'])-1} == '/')?($part['path'].'index.html'):$part['path']);
@mkdir($container);
chmod($container, 0777);
$cache = file_get_contents('http://www.google.com/search?q=cache:'.$page);
file_put_contents($file, $cache);
chmod($file, 0777);

say("Page $page saved to $file");
flush();
usleep($sleep);
}
}
?>
</div>
</body>
</html>

Или может кто знает рабочий скрипт или программу для выкачки сайта из кэша Гугла ?

hatqier добавил 20.08.2010 в 21:35

Программисты, помогите... очень надо :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий