За последние 24 часа нас посетил 18221 программист и 1577 роботов. Сейчас ищут 1117 программистов ...

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.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Ссылка в моей подписи, пункт 7.
     
  3. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    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.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Используйте 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.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @spirit1086 используй API сайта с которым обмениваешься данными, тогда не придётся обходить капчу
     
  9. spirit1086

    spirit1086 Новичок

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

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

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

    TeslaFeo Старожил

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