За последние 24 часа нас посетили 21634 программиста и 1028 роботов. Сейчас ищет 761 программист ...

Curl и удаленная форма

Тема в разделе "Решения, алгоритмы", создана пользователем spirit1086, 1 авг 2017.

  1. spirit1086

    spirit1086 Новичок

    С нами с:
    1 авг 2017
    Сообщения:
    7
    Симпатии:
    0
    Здравствуйте,
    Подскажите, пытаюсь через curl получить эту страницу http://kgd.gov.kz/ru/app/culs-taxarrear-search-web, не могу добраться до капчи, так как возвращается страница сайта, но без формы, не пойму почему:confused:
    Код (Text):
    1.  
    2.  public function actionIndex()
    3.     {
    4.         $data = $this->Captha("http://kgd.gov.kz/ru/app/culs-taxarrear-search-web");
    5.      
    6.         var_dump($data) ;  
    7.  }
    8.  
    9.  
    10. public function Captha($url)
    11.     {
    12.      $ch = curl_init();
    13.    curl_setopt($ch, CURLOPT_URL, $url );
    14.    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36');
    15.    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить то что вернул сервер
    16.    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
    17.    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут4
    18.    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    19.    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); // сохранять куки в файл
    20.    curl_setopt($ch, CURLOPT_COOKIEFILE,  dirname(__FILE__).'/cookie.txt');
    21.    $result = curl_exec($ch);
    22.  
    23.     return $result;
    24.     }
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Ссылка в моей подписи, пункт 7.
     
  3. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    возможно, форма подгружается AJAX-ом...
     
  4. spirit1086

    spirit1086 Новичок

    С нами с:
    1 авг 2017
    Сообщения:
    7
    Симпатии:
    0
    да я посмотрел так и есть, каким образом можно ее забрать, читаю сейчас вроде это делает phantomjs , возможен ли другой способ, подскажите направление?
     
  5. spirit1086

    spirit1086 Новичок

    С нами с:
    1 авг 2017
    Сообщения:
    7
    Симпатии:
    0
    phantomjs подгружает форму но капча не формирует link, там постоянно loading.gif, увеличивал таймаут не помогло, кто как забирает картинку капчи если форма подгружается js, как делаете подскажите
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Используйте API, парсинг тут запрещено обсуждать
     
  7. spirit1086

    spirit1086 Новичок

    С нами с:
    1 авг 2017
    Сообщения:
    7
    Симпатии:
    0
    использую API anti-captcha.com, но там нужно отдавать урл капчи, а я его не могу получить через curl так как форма грузится динамически, как получить путь типа этого, curl не подтягивает img так как он динамически загружается на страничку
    <img src="/apps/services/CaptchaWeb/generate?uid=0d30f2f7-cf92-4ca4-b115-f89b676d3ad4&t=27513ef7-69f0-4aa9-a6a1-a9afb8ce4a83" />
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @spirit1086 используй API сайта с которым обмениваешься данными, тогда не придётся обходить капчу
     
  9. spirit1086

    spirit1086 Новичок

    С нами с:
    1 авг 2017
    Сообщения:
    7
    Симпатии:
    0
    у того сайта нет api
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Значит, авторы не заинтересованы в том, чтобы их контент использовался где-то еще, оттягивая от них целевой трафик.
    Значит закрываем лавочку, ибо нефиг.
     
  11. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    или у них нужно спросить. Может быть они заинтересованы, но еще не сделали API и теперь сделают.
    Или у них есть закрытое API, к которому они дадут доступ.
    Короче спросить/попросить нужно у них.