Вернуться   Форум SAPE.RU > Практика оптимизации > Общие вопросы оптимизации

-->
Ответ
 
Опции темы
Старый 11.12.2008, 03:18   #1
Эксперт
 
Регистрация: 04.02.2007
Сообщений: 2,242
Вес репутации: 383
админ - прекрасное будущееадмин - прекрасное будущееадмин - прекрасное будущееадмин - прекрасное будущееадмин - прекрасное будущееадмин - прекрасное будущееадмин - прекрасное будущееадмин - прекрасное будущееадмин - прекрасное будущееадмин - прекрасное будущееадмин - прекрасное будущее
Cool Парсер кэша Google

Решил выложить скриптик что мы делали для своих нужд как-то. Уже раздавал в личку, пусть в теме наверное будет.

Инструкция:

1. Создаем файл index.php и кладем в какую-нибудь папку на сервере.
2. Запускаем и ждем, в папке начнут появляться отпарсенные страницы...

PHP код:
<?

error_reporting
(0); // не показываем ошибки
set_time_limit(1800); // таймаут работы скрипта

ini_set('user_agent','Opera/9.52 (Macintosh; Intel Mac OS X; U; en)'); // Маскируемся
ini_set('default_socket_timeout','10'); // Исключаем большие таймауты запросов

if(@!$_GET['domen']){        // Форма
?>
<form name=f method=get action="index.php" onSubmit="if(f.domen.value!=''){if(confirm('Внимание! Удостоверьтесь, что адрес введён верно ('+f.domen.value+')\nВ кеше может оказать очень много страниц!\nВы уверены, что готовы дождаться результата копирования сраниц, это может занять много времени!')){self.location='?domen='+f.t.value}else{return false;}}else{alert('Не введён адрес сайта!');return false;}">
Введите домен для поиска и копирований результатов, сохранённых в кеше<br>
http://<input type=text name=domen size=40> &nbsp; <input type=submit value="  GO  "></form>
<?
exit();
}


$domen htmlspecialchars(trim($_GET['domen']));    if(substr($domen04)=="www."){$domen=substr($domen,4);} // Домен

// Начальная страница
$firstpage "http://www.google.com/search?num=100&hl=en&newwindow=1&safe=off&q=allinurl:".$domen."+site:".$domen."&start=0&sa=N&filter=0";
$dump file_get_contents($firstpage);

// Ищем кол-во результатов
$phrase "</b> of about <b>";
if(
strstr($dump$phrase)){
    
$pos strpos($dump$phrase);
}else{
    
$phrase "</b> of <b>";
    
$pos strpos($dump$phrase);
}
    if(!
$pos){exit("Не найдено!");}

// Ищем кол-во страниц
$num substr($dump$pos+strlen($phrase));
$num substr($num0strpos($num"</b> "));
$num str_replace(","""$num);
$num ceil($num/100);

if(
$num>100){$num=100;} // обрабатываем сотню страниц, ограничение в сотню страниц = хотя бы 10'000 сохранённых страниц



for($i=0;$i<$num;$i++){ // Генерим ссылки 
    
$starturls[]="http://www.google.com/search?num=100&hl=en&newwindow=1&safe=off&q=allinurl:".$domen."+site:".$domen."&start=".($i*100)."&sa=N&filter=0";
}
array_unique($starturls); // Убираем дубликаты, на всякий случай


$data=''$totnum=0$cached=array(); $totsize=0;
$googledata '</div></div></div><div style="position:relative">';

foreach(
$starturls as $starturl){          // Обрабатываем по страницам, по 100 ссылок на каждой

    
$data file_get_contents($starturl);

    
$find="<span class=gl>"// Строка для поиска

    
$num=substr_count($data$find); // Кол-во найденных строк
    
$totnum+=$num;

    echo 
"<br><br><b>".round(strlen($data)/10243)." кб</b><br><b>$num вхождений</b><br>";
    if(
$num==0){exit("нет вхождений");}
    
    for(
$i=0;$i<$num;$i++){
        
$data substr($datastrpos($data$find)+1); // Находим начало строки
        
$url substr($datastrpos($data'href="')+6); // находим в ней ссылку
        
$url substr($url0strpos($url'"')); // вырезаем ссылку
        
        
$page $url;
        
$page substr($pagestrpos($page"cache:")+6); // находим название страницы
        
$page substr($pagestrpos($page":")+1); // вырезаем от начала
        
$page substr($page0strpos($page"+")); // и до конца
        
$page str_replace("/""-"$page); // заменяем символы для записи

    
        
if(in_array($page$cached)){ // Если уже сохраняли, пропускаем
            
$res="<font color=blue>Already copied!!!</font>";
            
$size=0;
            
$totnum--;
        }else{
    
            if(
$pagedata=file_get_contents($url)){ // Получаем файл
            
                
if($gpos=strpos($pagedata$googledata)){$pagedata substr($pagedata$gpos+strlen($googledata)+1);} // Убираем гугловскую шапку
            
                
file_put_contents($page$pagedata); // Сохраняем файл
                
$res="<font color=green>OK</font>"
                
$size=round(filesize($page)/1024,3); 
                
$totsize+=$size;
            }else{                        
// Если не удалось скачать
                
$res="<font color=red>ERROR</font>"
                
$size=0;
            }
    
        }
    
        echo (
$i+1).") ".$page." - ".$res." (".$size." кб)<br>\n";
        
        
$cached[]=$page// Сохраняем адреса скачанных страниц, чтоб не повторяться
    
}
    
array_unique($cached); // Убираем дубликаты

}

echo 
"<hr>Всего ".$totnum." страниц, ".$totsize." кб.";


?>
Если кто доработает или оптимизирует, буду только рад, писалось как обычно на скорую руку за полчаса. Но вроде всё нормально работает..
__________________
тиц до яиц )) ©

Последний раз редактировалось админ; 11.12.2008 в 03:23.
админ вне форума   Ответить с цитированием
Старый 28.10.2011, 18:45   #2
Специалист
 
Регистрация: 03.10.2008
Сообщений: 134
Вес репутации: 198
kirgudu - просто великолепная личностьkirgudu - просто великолепная личностьkirgudu - просто великолепная личностьkirgudu - просто великолепная личностьkirgudu - просто великолепная личностьkirgudu - просто великолепная личность
По умолчанию

Друзья, не знаете где можно взять рабочий скрипт для гугла и яндекса. Или хотя бы для кого-нибудь одного. Можно за деньги, если не дорого.

Последний раз редактировалось kirgudu; 28.10.2011 в 18:52.
kirgudu вне форума   Ответить с цитированием
Старый 30.10.2011, 16:38   #3
Bannеd
 
Регистрация: 17.09.2008
Сообщений: 6,446
Вес репутации: 369
Последний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущее
По умолчанию

Цитата:
Сообщение от kirgudu Посмотреть сообщение
Друзья, не знаете где можно взять рабочий скрипт для гугла и яндекса. Или хотя бы для кого-нибудь одного. Можно за деньги, если не дорого.
у меня в подписи хорошая ссылка на любые услуги. думаю там найдете.
Последний Герой вне форума   Ответить с цитированием
Старый 02.12.2011, 00:53   #4
Специалист
 
Регистрация: 30.10.2007
Сообщений: 175
Вес репутации: 207
Violator - очень-очень хороший человекViolator - очень-очень хороший человекViolator - очень-очень хороший человекViolator - очень-очень хороший человек
По умолчанию

Аналогично, нужен парсер, чтобы вытащить странички из кэша гугла.

80 штук осталось из 700 всего.

Остальное, можно где-то найти?
На вебархиве нет.
В яндексе тоже.
Violator вне форума   Ответить с цитированием
Старый 25.04.2014, 06:58   #5
Новичок
 
Регистрация: 21.03.2014
Сообщений: 1
Вес репутации: 0
matrixid на пути к лучшему
По умолчанию

Аппну, может сейчас есть у кого рабочий парсер?
matrixid вне форума   Ответить с цитированием
Старый 06.05.2014, 06:21   #6
Специалист
 
Аватар для Georg_I
 
Регистрация: 01.03.2012
Сообщений: 300
Вес репутации: 156
Georg_I - как роза среди колючекGeorg_I - как роза среди колючекGeorg_I - как роза среди колючек
По умолчанию

А можно на пальцах, с какой целью это нужно?
Georg_I вне форума   Ответить с цитированием
Старый 06.05.2014, 11:36   #7
Специалист
 
Регистрация: 09.07.2007
Адрес: #я Донбасс
Сообщений: 384
Вес репутации: 237
Brus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущее
По умолчанию

Georg_I,
Цитата:
Сообщение от Violator Посмотреть сообщение
чтобы вытащить странички из кэша гугла
ваш КО
Brus вне форума   Ответить с цитированием
Старый 06.05.2014, 14:46   #8
Специалист
 
Аватар для Georg_I
 
Регистрация: 01.03.2012
Сообщений: 300
Вес репутации: 156
Georg_I - как роза среди колючекGeorg_I - как роза среди колючекGeorg_I - как роза среди колючек
По умолчанию

Цитата:
Сообщение от Brus Посмотреть сообщение
Georg_I,

ваш КО
А конечная цель? Отслеживать как менялись страницы сайта?
Georg_I вне форума   Ответить с цитированием
Старый 06.05.2014, 19:11   #9
Специалист
 
Регистрация: 09.07.2007
Адрес: #я Донбасс
Сообщений: 384
Вес репутации: 237
Brus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущееBrus - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Georg_I Посмотреть сообщение
Отслеживать как менялись страницы сайта?
У меня другая версия: чтоб вернуть контент на дропнутый домен
Brus вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить страницы сайта из кэша google? админ Google, MSN, Yahoo 4 22.09.2008 04:11
Морда вылетела из кэша Яши Dreamer.rus Яндекс 2 03.05.2008 20:40
обновление/изменение кэша страницы wildlion Контекстные ссылки и все, что с ними связано 4 04.02.2008 08:52
Парсер Я.Каталога kip Курилка 3 06.10.2007 20:17
Оптимизаторы опомнитесь!По поводу выпадания сайтов из кэша гугла и занесения их в BL Andrej Вопросы по работе системы 11 31.07.2007 15:32


Часовой пояс GMT +3, время: 10:39.