Парсинг выдачи гугла и его капча

Тема в разделе "Зарубежные поисковики", создана пользователем O Z, 23 янв 2012.

  1. O Z

    O Z Постоялец

    Регистр.:
    15 июн 2007
    Сообщения:
    101
    Симпатии:
    10
    Доброго времени суток!
    Пишу парсер выдачи гугла и яндекса для определения позиций, использую php + curl && antigate.com для расшифровки каптч.
    С яндексом все просто, а вот с гуглом не очень.

    Капча гугла.
    При запросе, гугл редиректит на капчу, получаю форму + куча текста + сама капча:
    Чтобы продолжить, введите указанные ниже символы:<br><br>
    <img src="/sorry/image?id=7665202828380425241&amp;hl=ru" border="1" alt="Включите отображение изображений">
    После парсинга src, леплю ссылку: 'http://google.com' . $src;
    Делаю запрос по ссылке за капчой, дабы сохранить капчу в формате jpg и отправить на antigate. Но беда в том, что в ответ я получаю уже новую капчу хотя использую id капчи полученной вначале.

    Мне нужно сохранить капчу в .jpg для дальнейшей оправки на antigate.
    Может кто сталкивался, есть идеи? :thenks:
     
  2. Menro

    Menro web, seo, email, hack

    Регистр.:
    27 янв 2008
    Сообщения:
    599
    Симпатии:
    112
    Поставь просто задержку, у меня парсеры парсят, капча не выскакивает.
     
  3. O Z

    O Z Постоялец

    Регистр.:
    15 июн 2007
    Сообщения:
    101
    Симпатии:
    10
    $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_setopt($ch, CURLOPT_TIMEOUT, 5);?
    Или поставить больше 5 секунд? Или лучше использовать sleep(5) между запросами?
    И перед каждым новым запросом я удаляю куки.
    Стоит ли ставить curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)'); и curl_setopt($ch, CURLOPT_REFERER, 'http://google.com/');??
     
  4. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    ну, вот в этом-то и причина, 90%
    во всяком случае до тех пор, пока не вернешь куки, уж точно работать не будет.
    Всегда ваш КО
     
  5. O Z

    O Z Постоялец

    Регистр.:
    15 июн 2007
    Сообщения:
    101
    Симпатии:
    10
    Куки удаляются перед новым запросом, но используются на протяжении одного запроса.
    Это работает и более чем на 10%.
     
  6. Бобр Добр

    Бобр Добр

    Регистр.:
    17 янв 2010
    Сообщения:
    242
    Симпатии:
    37
    PHP:
    CURLOPT_CONNECTTIMEOUT
    выставь