|
|
|
| Была система определение позиций, но яндекс изменил дизайн и теперь ничего не работает.
Старая функция для определения :
function YandexDetect($url, $keywords){
$keywords = rawurlencode($keywords);
$keywords = str_replace("%20","+",$keywords);
$i = 0;
$q = 1818836167;
while($i<10){
$text = file_get_contents("http://www.yandex.ru/yandpage?&q=".$q."&p=".$i."&ag=d&qs=text%3D".$keywords);
preg_match_all("/.*<li value=(.*)>(.*)onclick/sU", $text, $arr);
$positions = $arr[1];
$values = $arr[2];
reset($values);
foreach($values as $key=>$value){
if(strpos($value, $url))
return intval($positions[$key]);
}
$i++;
}
return false;
}
|
Для того что бы мне нормально его отредактировать нужно понять его работу
while($i<10) = это цикл просмотра страниц
file_get_contents = открытие страницы
preg_match_all = рег выражение
ну $arr[1] и $arr[2] = это понятно
а вот дольше я ничего не понял видать это какоето сравнение и результат
но логичный ответ не могу сформировать :(
попытался отредактировать его так
while($i < 10) {
$contents = file_get_contents("http://large.yandex.ru/search?page=$i&query=$keywords");
preg_match_all("|<LI value=\"([^>]*)\">[^>]*>[^/]*".$url."|isU", $contents, $out, PREG_PATTERN_ORDER);
$positions = $arr[1];
$values = $arr[2];
reset($values);
foreach($values as $key=>$value){
if(strpos($value, $url))
return intval($positions[$key]);
}
$i++;
}
|
но естественно ничего не вышло :( | |
|
|
|
|
|
|
|
для: black_joker
(08.05.2007 в 14:31)
| | Хммм...
Ни кто не может подсказать ? | |
|
|
|
|
|
|
|
для: Black_joker
(11.05.2007 в 19:06)
| | чего парсим-то? фрагмент страницы давайте. | |
|
|
|