Необходимо получить CSRF и разрешить капчу:
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, $useragent);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
$str = curl_exec($curl);
curl_close($curl);
здесь я нахожу имя капчи и затем отправляю его в форму:
$post = http_build_query(array('ciudadOrigen' => $origen,etc));
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url.$post);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_COOKIE, $cookie);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_REFERER, $url);
curl_setopt($curl, CURLOPT_STDERR, $log);
curl_setopt($curl, CURLOPT_USERAGENT, $useragent);
curl_setopt($curl, CURLOPT_POSTFIELDS, array($url,$post));
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
$str = curl_exec($curl);
curl_close($curl);
Однако использование этого делает капча второго запроса отличается от первого.
$result_full = wp_remote_get($url, $args);
$result_entities = wp_remote_retrieve_body($result_full);