Старый 10.07.2008, 20:00   #1
Новичок
 
Регистрация: 23.03.2008
Сообщений: 9
Вес репутации: 0
lazutov скоро станет известен
По умолчанию [php] Определение списка проиндексированных Яндексом страниц.

Здравствуйте.
Для этих целей я использовал (и использую)такой скрипт:
Код:
<?

echo '<form method=post><input size="30" type="text" name="site" value=""> <input type="submit" value="OK :)">  </form>';
function rhost($rhost){
$out='';
$part='';
while(strpos($rhost,'.')!==false){
 $part=substr($rhost,0,strpos($rhost,'.'));
 $rhost=substr($rhost,1+strpos($rhost,'.'));
 $out='.'.$part.$out;
}
$out=$rhost.$out;
  return $out;
}

function pget($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_USERAGENT, "User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14");
curl_setopt($ch, CURLOPT_COOKIE,"YX_SEARCHPREFS=favicons:1,lang:all,ton:1,banners:,search_form:topbot,numdoc:50,target:_blank,desc:sometimes,lr:,wstat:,t:2,family:; path=/; expires=Friday, 31-Dec-10 23:59:59 GMT; domain=.yandex.ru;") ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ret=curl_exec($ch);
curl_close($ch);
return $ret;
}

function sget($site){
$flag=true;
$page=0;

$counter=0;
//echo '<textarea name="list" cols="40" rows="25">';
 while($flag===true){
 $out='';
  $res=pget('http://yandex.ru/yandsearch?p='.$page.'&pag=u&site='.$site.'&lang=ru&rd=0&text=rhost%3D%22'.rhost($site).'%22|rhost%3D%22'.rhost($site).'.*%22');
  preg_match_all('!<span style="color:#060;">(.*?)&nbsp;&middot;&nbsp;!si',$res,$urls);

  foreach ($urls[1] as $i) {
     $result[$counter]=str_replace("\n","",$i);
   $counter++;
    }

  $page++;
  if (strpos($res,'/yandsearch?p='.$page.'&pag=u')===false) {$flag=false;}

  }

return $result;
}

if (isset($_POST['site'])){
 $site=$_POST['site'];

$pages=sget($site);
sort($pages);
reset($pages);
echo "<pre>";
foreach ($pages as $i) { echo $i."\n";}
echo "</pre>";

}
  echo $page;
?>
Думаю скрипт будет полезен.
PS этот-же код только с коментариями. http://lazutov.ru/tools/ycheck/
lazutov вне форума   Ответить с цитированием
Старый 10.07.2008, 20:09   #2
Мастер
 
Аватар для Crudelis
 
Регистрация: 25.05.2008
Адрес: Днепропетровск
Сообщений: 582
Вес репутации: 205
Crudelis на пути к лучшему
Отправить сообщение для Crudelis с помощью ICQ
По умолчанию

Спасибо классный скрипт вот только одна проблемка если сайта нет в индексе то выдаёт ошибки скирпт

Добавлено через 1 минуту
Цитата:
Warning: sort() expects parameter 1 to be array, null given in ***** on line 57

Warning: reset(): Passed variable is not an array or object in***** on line 58


Warning: Invalid argument supplied for foreach() in /****** on line 60
Такие ошиби если сайта нет в индексе
__________________
скачать бесплатно софт можно у нас | скачать бесплатно фильмы | скачать бесплатно музыку
Умный в Яндекс не пойдёт, умный в Гугле всё найдёт!

Последний раз редактировалось Crudelis; 10.07.2008 в 20:09. Причина: Добавлено сообщение
Crudelis вне форума   Ответить с цитированием
Старый 10.07.2008, 20:30   #3
Новичок
 
Регистрация: 23.03.2008
Сообщений: 9
Вес репутации: 0
lazutov скоро станет известен
По умолчанию

Вы знайте: мое отношение к этому таково: скрипт не публичный, свою функцию -опредилить он выполняет.
@sort(..) @reset(..) уберет симптомы ошибки(но не исправит их)
Для foreach поможет проверка is_array(http://ru2.php.net/manual/ru/function.is-array.php)
или где-то в начале скрипта $pages=array();
Спасибо
lazutov вне форума   Ответить с цитированием
Старый 10.07.2008, 21:00   #4
Злой модератор
 
Аватар для Wink
 
Регистрация: 25.03.2007
Адрес: Deep forest
Сообщений: 5,343
Вес репутации: 502
Wink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущее
По умолчанию

Чем мне поможет первая тысяча страниц в индексе, если у меня их там 12 тысяч? А с подкаталогами скрипт не умеет работать.
Wink вне форума   Ответить с цитированием
Старый 10.07.2008, 21:07   #5
Новичок
 
Регистрация: 23.03.2008
Сообщений: 9
Вес репутации: 0
lazutov скоро станет известен
По умолчанию

Покажите пример запроса, чтобы получить с подкаталогами. Постараюсь сделать
lazutov вне форума   Ответить с цитированием
Ответ

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка проиндексированных страниц в сапе koreec Вопросы по работе системы 2 20.06.2008 05:47
Несоответствие проиндексированных страниц Sape и Яши BeckShev Вопросы от новичков 10 19.05.2008 19:12
Выгрузка списка проиндексированных страниц hksalavat Яндекс 5 12.05.2008 13:50
Удаление страниц, не проиндексированных Яндексом Vipartyzan Вопросы от новичков 4 27.02.2008 20:36
Чекер проиндексированных гуглем страниц Bipa Пожелания пользователей системы 0 13.11.2007 20:37


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