Parse Google

MM
На сайте с 21.10.2011
Offline
3
1530

Всем здрасте, помогите решить незадачу одну.

Пишу парсер выдачи результатов поиска гугла, использую antigate.com для распознавания капч. Для распознания нужно сохранить капчу и после отправить на антигейт. Вроде и не сложно, а вот капчу гугла словить не могу, если перейти по ссылке за капчей, каждый раз новая капча, хотя ссылка та же. Все это делаю с куками.

Использую php + curl.

Есть какие идеи??

N7
На сайте с 24.11.2011
Offline
19
#1

все сохраняют картиками

а так здорового парсера не хватает... простого и дешевого, по конкретным запросам и выдачам с сылками

P.S. все - софт девелопоперы... картинка - скрин - на распознание... всмысле тоебе не от скритпа идти надо а от картинки =) скрин ее делать =)) хотя мноий софт не скрин делает а сохоаняет ее опять же в темпы... как хотите так веритистесь... на бета тест пригласите, а тов вебпарсера не хватает... не совсем на те нужны оказался...

F
На сайте с 10.12.2011
Offline
19
#2
nikolas77:
а так здорового парсера не хватает... простого и дешевого, по конкретным запросам и выдачам с сылками.

Чем вам "SERP Parser Lite" не угодил? И простой (в плане использования) и дешевый. И в тоже время довольно мощная софтина по возможностям. Рекомендую.

---------- Post added at 04:35 ---------- Previous post was at 04:24 ----------

MrMikola:
Всем здрасте, помогите решить незадачу одну.
если перейти по ссылке за капчей, каждый раз новая капча, хотя ссылка та же.
Есть какие идеи??

Абсолютно адекватная реакция, так все капчи работают. Ибо генерация когда капчи, происходит именно в скрипте который ее рисует. Вопрос такой, зачем вам несколько раз переходить по ссылке за капчей?

Там же все просто должно быть. Редиректнуло вас на страницу с капчей, вы взяли урл картинки src тега img капчи. Загрузили ее перавый и последний раз, распознали и отправили нужный POST запрос.

BZ
На сайте с 05.01.2011
Offline
11
#3

Напиши как решил проблему, интресно

MM
На сайте с 21.10.2011
Offline
3
#4
Frostmaind:

Абсолютно адекватная реакция, так все капчи работают. Ибо генерация когда капчи, происходит именно в скрипте который ее рисует. Вопрос такой, зачем вам несколько раз переходить по ссылке за капчей?

Я так и поступаю:

делаю запрос, редирект на страницу с капчей, там <img src="/sorry/image?id=7665202828380425241&amp;hl=ru">, я беру src, добавляю в начало google.com и отправляюсь в путь за картинкой, а там то и пустая страница. А если взять слепленную ссылку и ввести вручную, будет капча и при каждом запросе новая, несмотря на то, что id тот же.

---------- Добавлено 23.01.2012 в 11:19 ----------

nikolas77:
на бета тест пригласите, а тов вебпарсера не хватает... не совсем на те нужны оказался...

Обязательно.)

Yandex уже готов, а вот Google еще не поддается.

---------- Добавлено 23.01.2012 в 12:26 ----------

Решено.

Оказалось все и не так сложно.

Удаляем куки, делаем запрос с curl:

function get_page ($link, $flag = false) {

if ($flag === true) @unlink('tmp/cookie.txt');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $link);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_COOKIEFILE, 'tmp/cookie.txt');

curl_setopt($ch, CURLOPT_COOKIEJAR, 'tmp/cookie.txt');

$result = curl_exec($ch);

curl_close($ch);

return $result;

}

Проверяем результат на капчу, если есть капча, парсим id:

function get_google_captcha_id ($page) {

$regexp = '/img\ssrc\=\"\/sorry\/image\?id\=([0-9]+)/';

preg_match_all($regexp, $page, $matches);

$result = $matches[1][0];

return $result;

}

Используя ту же функцию и полученные куки идем за капчей с curl по слепленной ссылке:

$captcha = get_page("http://www.google.com/sorry/image?id=$id&hl=en"), $id);

Функция для сохранения капчи:

function save_google_img ($data, $id_captcha) {

$name = 'tmp/'. time() .'-'. $id_captcha .'.jpg';

file_put_contents($name, $data);

return $name;

}

Сохраняем капчу:

save_google_img($captcha, $id);

Капча сохранена.

Парсер до конца еще не готов, надо доделать БД и прорисовку графика позицый, да и привязка к ключу от antigate.com, а сервис не бесплатный.

Если будут желающие, можно добавить авторизацию, после вносить свой ключ от антигейт и юзать парсер.

MM
На сайте с 21.10.2011
Offline
3
#5

Поспешил я немного.

Капчу я то сохранил, а вот какую не ясно.

Одна и та же ссылка каждый раз выдает новую капчу.

Когда идет редирект на капчу, гугл выдает первую капчу, после парсинга id, делаю запрос по ссылке за капчей и получаю уже новую капчу.

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