【问题标题】:cURL Access Denied in crawler PHP爬虫 PHP 中的 cURL 访问被拒绝
【发布时间】:2021-08-02 21:33:50
【问题描述】:

我正在创建一个爬虫来捕获一些公共信息。 但是,它正在返回:

访问被拒绝
您无权访问此服务器上的“http://www.americanas.com.br/”。

使用 Postman 测试请求,cURL 完美运行。我什至得到了 Postman 生成的代码(如下所示),但是当我直接在我的 PHP 服务器上使用它时,返回上面通知的错误。

我的 cURL 代码:

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.americanas.com.br/",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "cache-control: no-cache",
        "postman-token: 112ebf89-1bb7-aa7a-0645-cdeabcf96488"
    ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if($err) echo "cURL Error #:" . $err;
else echo $response;
exit();

【问题讨论】:

  • 当我在浏览器中访问 URL americanas.com.br 时,我收到相同的错误消息。

标签: php curl web-crawler


【解决方案1】:

您的邮递员正在查询 https://www.americanas.com.br/,而从错误消息中我们可以假设在您的爬虫中您正在查询 http: //www.americanas.com.br/

【讨论】:

  • 根据我的 cURL 代码,我使用的是“httpS”。也许重定向是自动的,我不知道为什么
【解决方案2】:

我发现有些网站的锁更复杂。在这些情况下,就需要使用更完善的爬虫解决方案。 我正在使用和工作的是 Proxycawl (https://proxycrawl.com/)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-21
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多