Программа Curl, получающая капчу в результате - PullRequest
0 голосов
/ 03 ноября 2018

Я отправляю запрос на скручивание на веб-сайт, который не имеет капчи при доступе через веб-браузер, но по какой-то причине имеет ее при CURL. Как я могу сделать так, чтобы я просто получил ответ, как если бы я использовал свой браузер, который не показывал бы капатчу? В основном это изучение того, как эффективно использовать CURL, как браузер для доступа к веб-контенту. Вот мой код CURL:

    $url = "example.com";
    $var = "Var";
    $var1 = "Var1";
    $var2 = "Var2";
    $var3 = "Var3";
    $var4 = "Var4";


$fields = array(
                        'var' => urlencode($var),
                        'var1' => urlencode($var1),
                        'var2' => urlencode($var2),
                        'var3' => urlencode($var3),
                        'var4' => urlencode($var4)
                );

//url-ify the data for the POST
$fields_string = "";
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

//execute post
$result = curl_exec($ch);
if (curl_error($ch)) {
    $error_msg = curl_error($ch);
}
//close connection
curl_close($ch);

if (isset($error_msg)) {
    echo "Curl Error: '$error_msg'<br>";
}

echo "Result: $result<br>";
exit("exiting at 49");

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...