Парсем с проксями уже писал и юзал, тут можно использовать, но будет не очень удобно в дальнейшем, потому хочу проходить капчу.)
И локальный тоже не могу использовать.)
Вот думаю использовать imagegrabwindow(). Пока еще правда не разобрался.
Поспешил я немного.
Капчу я то сохранил, а вот какую не ясно.
Одна и та же ссылка каждый раз выдает новую капчу.
Когда идет редирект на капчу, гугл выдает первую капчу, после парсинга id, делаю запрос по ссылке за капчей и получаю уже новую капчу.
Когда идет редирект на капчу, гугл выдает первую капчу, после парсинга id, делаю запрос по ссылке за капчей и получаю уже новую капчу.---------- Добавлено 23.01.2012 в 17:36 ----------
А каким образом я могу сохранить капчу с первого раза в формате jpg, не ходя за ней?
Вот что получаем при редиректе на капчу:
<div style="max-width:400px;">
<hr noshade="" size="1" style="color:#ccc; background-color:#ccc;"><br>
Чтобы продолжить, введите указанные ниже символы:<br><br>
<img src="/sorry/image?id=7665202828380425241&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&oq=sape+xml&sourceid=chrome&ie=UTF-8&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&oq=sape+xml&sourceid=chrome&ie=UTF-8&q=sape+xml-rpc<br>
</div></div>
Спарсил <img src="">, добавил вначале goole.com, иду за капчей, а там пусто. Но если взять слепленную ссылку и ввести вручную, есть капча и при каждом запросе новая, хотя id тот же.
В основном когда скрипт идет за капчей, получает пустую страницу, хотя бывают исключения. Вот и не могу понять в чем дело.---------- Добавлено 23.01.2012 в 12:34 ----------Все решено.
Капча не грузится, тк адрес относительный google.com.---------- Добавлено 23.01.2012 в 12:34 ----------Все решено.
Я так и поступаю:
делаю запрос, редирект на страницу с капчей, там <img src="/sorry/image?id=7665202828380425241&hl=ru">, я беру src, добавляю в начало google.com и отправляюсь в путь за картинкой, а там то и пустая страница. А если взять слепленную ссылку и ввести вручную, будет капча и при каждом запросе новая, несмотря на то, что id тот же.---------- Добавлено 23.01.2012 в 11:19 ----------
Обязательно.)
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];
Используя ту же функцию и полученные куки идем за капчей с 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, а сервис не бесплатный.
Если будут желающие, можно добавить авторизацию, после вносить свой ключ от антигейт и юзать парсер.