Парсинг Яши

12
В десятке
На сайте с 17.08.2007
Offline
135
1486

Всем доброго времени суток!

Решил переделать свою старенькую серверную чекалку позиций и столкнулся вот с какой проблемой: Яша не выдаёт на одной странице более 50 результатов, в связи с чем приходится просматривать более 1 страницы при парсинге, и как следствие большое количество запросов, на что Яша радостно реагирует сообщением "А не робот ли Вы...". На данный момент используется 18 ip-адресов, которые меняются в случае если выводится капча, но этого не хватает.

Вопрос: как вы решили проблему парсинга Яши без установки таймаутов и смены ip? :smoke:

M
На сайте с 30.08.2005
Offline
200
#1
В десятке:
Яша радостно реагирует сообщением "А не робот ли Вы...". На данный момент используется 18 ip-адресов, которые меняются в случае если выводится капча, но этого не хватает.

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

Проверяем качество ссылок (http://mexboy.ru/?p=4160) через SeoHammer MEXBOY.RU (http://mexboy.ru) - экспертный блог о Seo
В десятке
На сайте с 17.08.2007
Offline
135
#2

Собственно количество ip и будет увеличено в качестве решения, если другого не найдётся... Вот поэтому и создал темку, может кто чего умного подскажет :)

root
На сайте с 04.07.2006
Offline
196
#3

можно использовать yandex XML:

http://xml.yandex.ru/

до 1000 запросов с одного IP...

P.S. одна из прог, которая использует данную возможность >>

В десятке
На сайте с 17.08.2007
Offline
135
#4
root:
можно использовать yandex XML:
http://xml.yandex.ru/

до 1000 запросов с одного IP...

P.S. одна из прог, которая использует данную возможность >>

На данный момент у меня 36 ip адресов - соответственно я смогу сделать 36000 запросов. Но вот всё-равно смущает некий, хоть и "высокий" потолок. Плюс, раньше, не знаю как сейчас, часто выдача XML отличалась от общей выдачи. Как сэтим дела обстоят сейчас?

crosone
На сайте с 28.03.2008
Offline
73
#5
root:
можно использовать yandex XML:
http://xml.yandex.ru/
до 1000 запросов с одного IP...

тут есть хитроть, например то что поиск идет до 500 места, если мне память не изменяет.

А это значит что на 1 запрос, тратиться 10 попыток его найти среди 500 мест. Итого вы можете с одного ИПа найти 100 слов в день, имея 100 Проксей это хорошо, а с 18ю это не так уж и много.

٩(๏̯͡๏)۶
Brand from Amber
На сайте с 18.08.2007
Offline
291
#6
В десятке:
Плюс, раньше, не знаю как сейчас, часто выдача XML отличалась от общей выдачи. Как сэтим дела обстоят сейчас?

Как и раньше - отличается. Особенно первый день после АПа (+/-) аж до 5-и позиций.

P.S. В помощь таймауты + прокси. Других вариантов не вижу.

Лучший способ понять что-то самому - объяснить это другому.
SJ
На сайте с 16.03.2008
Offline
78
#7

А если юзать http://go.mail.ru/search?q= ? Там выдача точно как у Яшки. Чуть регекспы изменить - и в путь. Не?

Любимый хостинг (http://beget.ru?id=2902) How can we grow old when the soundtrack of our lives is rock-n-roll?
N
На сайте с 08.08.2006
Offline
134
#8
crosone:
тут есть хитроть, например то что поиск идет до 500 места, если мне память не изменяет.
А это значит что на 1 запрос, тратиться 10 попыток его найти среди 500 мест. Итого вы можете с одного ИПа найти 100 слов в день, имея 100 Проксей это хорошо, а с 18ю это не так уж и много.

А Вы простите про какой метод сейчас говорите ? Perl или через строку GET ???

У меня вроде как и 800 позиций получал. Но через GET.

Аналитик
В десятке
На сайте с 17.08.2007
Offline
135
#9
sokol_jack:
А если юзать http://go.mail.ru/search?q= ? Там выдача точно как у Яшки. Чуть регекспы изменить - и в путь. Не?

отличается на мейле выдача =( увы...

В десятке добавил 25.11.2008 в 10:40

xml тоже не подходит ввиду того, что выдача отличается, хоть и в день апа... всегда нужны точные данные.

В десятке добавил 25.11.2008 в 10:43

Brand from Amber:
P.S. В помощь таймауты + прокси. Других вариантов не вижу.

На таймаутах далеко не уедешь... сейчас уже более 1000 запросов надо мониторить... и времени на это тьма уходит с таймаутами и то с ограничением не дальше 50 позиции - поэтому по одной странице в Я смотрю. Прокси - вообще крайне не надёжная штука. У меня свои ip. Но просто их количество ограниченно.

crosone
На сайте с 28.03.2008
Offline
73
#10
Nicola:
А Вы простите про какой метод сейчас говорите ? Perl или через строку GET ??? У меня вроде как и 800 позиций получал. Но через GET.

Курлами через GET

Там есть функция.

     $ips = $ip[rand(0,(count($ip)-1))];


$ch = curl_init(); // инициализация

curl_setopt( $ch, CURLOPT_URL, 'http://'.$name.'/' );
curl_setopt( $ch, CURLOPT_NOBODY, 0 );
curl_setopt( $ch, CURLOPT_HEADER, 0 );

curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );

curl_setopt( $ch, CURLOPT_TIMEOUT, 1 );

curl_setopt( $ch, CURLOPT_USERAGENT, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" );

curl_setopt( $ch, CURLOPT_INTERFACE, $ips );

curl_setopt( $ch, CURLOPT_REFERER, 'http://'.$name.'/' ); // маскируемся под реферера

$result = curl_exec( $ch ); // запуск

$info = curl_getinfo( $ch );

curl_close( $ch );

if($info['http_code']==200){} - успешное соединение

если статус равен 0 то IP не работает. Ипшники вводятся в массив, в итоге в скрипте они используются случайным образом. При успешном выполнении желательно использовать задержку sleep();

12

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