MrMikola

Рейтинг
3
Регистрация
21.10.2011

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

И локальный тоже не могу использовать.)

Вот думаю использовать imagegrabwindow(). Пока еще правда не разобрался.

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

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

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

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

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

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

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

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

---------- Добавлено 23.01.2012 в 17:36 ----------

modelist:
Предполагаю, что надо брать каптчу сразу как только её дают, а не ходить за ней по ссылке второй раз.

А каким образом я могу сохранить капчу с первого раза в формате jpg, не ходя за ней?

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

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

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

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

pssoft:
Непонятно как такое может быть.
1. Слил html код
2. Спарсил урл капчика
3. Слил капчик
4. Отправил распознал
5. Запостил
Не должно быть никаких проблем, что то недосмотрели уважаемый.

Вот что получаем при редиректе на капчу:

<div style="max-width:400px;">

<hr noshade="" size="1" style="color:#ccc; background-color:#ccc;"><br>

Чтобы продолжить, введите указанные ниже символы:<br><br>

<img src="/sorry/image?id=7665202828380425241&amp;hl=ru" border="1" alt="Включите отображение изображений"><br><br><form action="Captcha" method="get"><input type="hidden" name="continue" value="http://www.google.com.ua/search?aq=1&amp;oq=sape+xml&amp;sourceid=chrome&amp;ie=UTF-8&amp;q=sape+xml-rpc"><input type="hidden" name="id" value="7665202828380425241"><input type="text" name="captcha" value="" id="captcha" size="12" style="font-size:16px; padding:3px 0 3px 5px; margin-left:0px;"><input type="submit" name="submit" value="Отправить" style="font-size:18px; padding:4px 0;"><br><br><br></form>

<hr noshade="" size="1" style="color:#ccc; background-color:#ccc;">

<div style="font-size:13px;">

<b>Об этой странице</b><br><br>Мы зарегистрировали подозрительный трафик, исходящий из вашей сети. С помощью этой страницы мы сможем определить, что запросы отправляете именно вы, а не робот. <a href="#" onclick="document.getElementById('infoDiv').style.display='block';">Почему это могло произойти?</a><br><br>

<div id="infoDiv" style="display:none; background-color:#eee; padding:10px; margin:0 0 15px 0; line-height:1.4em;">

Эта страница отображается в тех случаях, когда автоматическими системами Google регистрируются исходящие из вашей сети запросы, которые нарушают <a href="http://www.google.ru/accounts/TOS">Условия использования</a>. Страница перестанет отображаться после того, как эти запросы прекратятся. До этого момента для использования служб Google необходимо проходить проверку по слову.<br><br>Источником запросов может служить вредоносное ПО, подключаемые модули браузера или скрипт, настроенный на автоматических рассылку запросов. Если вы используете общий доступ в Интернет, проблема может быть с компьютером с таким же IP-адресом, как у вас. Обратитесь к своему системному администратору. <a href="http://www.google.com/support/bin/answer.py?answer=86640">Подробнее...</a><br><br>Проверка по слову может также появляться, если вы вводите сложные запросы, обычно распространяемые автоматизированными системами, или же вводите запросы очень часто.

</div><br>

IP-адрес: 95.132.45.250<br>Время: 2012-01-23T06:43:41Z<br>URL: http://www.google.com.ua/search?aq=1&amp;oq=sape+xml&amp;sourceid=chrome&amp;ie=UTF-8&amp;q=sape+xml-rpc<br>

</div></div>

Спарсил <img src="">, добавил вначале goole.com, иду за капчей, а там пусто. Но если взять слепленную ссылку и ввести вручную, есть капча и при каждом запросе новая, хотя id тот же.

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

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

Все решено.

modelist:
Предполагаю, что надо брать каптчу сразу как только её дают, а не ходить за ней по ссылке второй раз.

Вот что получаем при редиректе на капчу:

<div style="max-width:400px;">

<hr noshade="" size="1" style="color:#ccc; background-color:#ccc;"><br>

Чтобы продолжить, введите указанные ниже символы:<br><br>

<img src="/sorry/image?id=7665202828380425241&amp;hl=ru" border="1" alt="Включите отображение изображений"><br><br><form action="Captcha" method="get"><input type="hidden" name="continue" value="http://www.google.com.ua/search?aq=1&amp;oq=sape+xml&amp;sourceid=chrome&amp;ie=UTF-8&amp;q=sape+xml-rpc"><input type="hidden" name="id" value="7665202828380425241"><input type="text" name="captcha" value="" id="captcha" size="12" style="font-size:16px; padding:3px 0 3px 5px; margin-left:0px;"><input type="submit" name="submit" value="Отправить" style="font-size:18px; padding:4px 0;"><br><br><br></form>

<hr noshade="" size="1" style="color:#ccc; background-color:#ccc;">

<div style="font-size:13px;">

<b>Об этой странице</b><br><br>Мы зарегистрировали подозрительный трафик, исходящий из вашей сети. С помощью этой страницы мы сможем определить, что запросы отправляете именно вы, а не робот. <a href="#" onclick="document.getElementById('infoDiv').style.display='block';">Почему это могло произойти?</a><br><br>

<div id="infoDiv" style="display:none; background-color:#eee; padding:10px; margin:0 0 15px 0; line-height:1.4em;">

Эта страница отображается в тех случаях, когда автоматическими системами Google регистрируются исходящие из вашей сети запросы, которые нарушают <a href="http://www.google.ru/accounts/TOS">Условия использования</a>. Страница перестанет отображаться после того, как эти запросы прекратятся. До этого момента для использования служб Google необходимо проходить проверку по слову.<br><br>Источником запросов может служить вредоносное ПО, подключаемые модули браузера или скрипт, настроенный на автоматических рассылку запросов. Если вы используете общий доступ в Интернет, проблема может быть с компьютером с таким же IP-адресом, как у вас. Обратитесь к своему системному администратору. <a href="http://www.google.com/support/bin/answer.py?answer=86640">Подробнее...</a><br><br>Проверка по слову может также появляться, если вы вводите сложные запросы, обычно распространяемые автоматизированными системами, или же вводите запросы очень часто.

</div><br>

IP-адрес: 95.132.45.250<br>Время: 2012-01-23T06:43:41Z<br>URL: http://www.google.com.ua/search?aq=1&amp;oq=sape+xml&amp;sourceid=chrome&amp;ie=UTF-8&amp;q=sape+xml-rpc<br>

</div></div>

Капча не грузится, тк адрес относительный google.com.

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

Все решено.

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, а сервис не бесплатный.

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