Разбор пагинации серпа Я

Статус
В этой теме нельзя размещать новые ответы.

Xacret.T

Постоялец
Регистрация
2 Июн 2006
Сообщения
146
Реакции
36
Вот тут такое дело: пишу парсер Я. Столкнулся с проблемой пагинации.

при чистом вводе запроса я получаю вот такую страницу
Код:
 http://www.yandex.ru/yandsearch?text=[B]Audi[/B]&stype=www
(далее я везде использую Audi как запрос)

ну а вот ссылки пагинации выглядят так:
Код:
http://www.yandex.ru/yandpage?&q=1982327231&p=1&ag=d&qs=text%3DAudi%26stype%3Dwww
http://www.yandex.ru/yandpage?&q=1982327231&p=2&ag=d&qs=text%3DAudi%26stype%3Dwww
http://www.yandex.ru/yandpage?&q=1982327231&p=3&ag=d&qs=text%3DAudi%26stype%3Dwww
тоесть как я понял
p - передает номер страницы
ag-хз!!!
а вот с q проблема - она генерится в зависимости от запроса!!! тоесть если я возьму и введу в браузере
Код:
http://www.yandex.ru/yandpage?&q=1982327231&p=2&ag=d&qs=text%3D[B]Porshe[/B]%26stype%3Dwww
то снова получу выдачу по Audi

вопрос такой: каков алгоритм генерирования значения для переменной q???

Добавлено через 4 минуты
а то влом парсить еще и ссылки пагинации - как не крути - доп нагрузка.
 
Нагрузка небольшая да и парсится быстро.

PHP:
$begin = strpos($content, "span class=\"active\"");
 $end = strpos($content, "/div", $begin);
 $pages = substr($content, $begin, $end - $begin);
 $pattern = "/<a\shref\s?=\s?[\"']?([^\"\s>]*)[^>]*>([\d]+)/i";
 preg_match($pattern, $pages, $matched);
 $url_next_page="http://www.yandex.ru".$matched[1];

Я бы посоветовал всеже не делать больше 15 таких запросов без какой либо задержки.

Достает доказывать девочкам с unblock@yandex.ru, что это не я, а глюки у вас логами :)
 
Попробуй ставить q=1.
А вообще конечно лучше выдернуть значение q с первой страницы и подставлять его.
Будешь меньше смахивать на бота ;)
Вроде бы это айди кэша данного запроса, который хранится в яндексе сутки.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху