LINUX.ORG.RU

curl и google, отличие от выдачи в браузере

 ,


1

3

Пишу парсер для результатов поиска Google, столкнулся с странным поведением curl. Запрос через curl выдает только 9 результатов первой страницы выдачи, когда с таким же запросом, браузер выдает то что его просят. Хочу понять почему.
$cat test_next.sh

#Запрос 100 результатов поиска со страницы 2
next_page=`curl -v --silent -A Opera --cookie cookie https://www.google.ru/search?q=linux&num=100&start=2`

#Получение всех url с полученной страницы.
echo $next_page | grep -ioE "<cite>.*?</cite>" | sed 's/<[^>]*>//g' | grep -ioE "(https?:\/\/)?(www\.)?[-а-яa-z0-9_\.]{2,}\.(рф|[a-z]{2,4})"

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

Может оно.

Тем более Opera скорее всего имеется в виду как рипнувшаяся Presto.

fornlr ★★★★★ ()
Последнее исправление: fornlr (всего исправлений: 1)

когда с таким же запросом

Даже близко нет. На заголовки в инспекторе браузера глянь. В хромике даже есть "Copy as cUrl"

anonymous ()

Пишу парсер для результатов поиска Google

Гиблое это дело, совсем скоро гугл прочухает и будет кормить тебя капчами на каждый запрос. Юзер агент и кукисы тут не помогут. Пытался делать парсер на нокогири — не взлетело.

Вообще, с автоматизацией гуглежа нынче большие проблемы, все бесплатные апи поисковиков закрыты/огорожены, что-то более-менее вменяемое осталось только у яндекса.

alexey48179027534 ()
Ответ на: комментарий от alexey48179027534

Гиблое это дело

Меня вдохновил платный парсер под Windows, он же как то все это обходит, да еще и без таймаутов, может они платные услуги используют? Попробую, сделаю рандомный таймаут 2-5 секунд и перерывы «на кофе» каждый час, котиков добавлю в запрос, еще что нибудь.

taomao ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.