【问题标题】:unbale to get a page with CURL php [duplicate]无法使用 CURL php 获取页面 [重复]
【发布时间】:2016-12-08 13:01:07
【问题描述】:

我想尝试使用 curl 从网站获取页面,这是我想要做的示例

<?php

$curl = curl_init();
curl_setopt($curl, CURLOPT_COOKIEJAR, './cookies.txt');
curl_setopt($curl, CURLOPT_COOKIEFILE, './cookies.txt');
curl_setopt_array($curl, array(
  CURLOPT_URL => "http://www.dwarozh.net/details.aspx?jimare=37170",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));
$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>

但我遇到了请启用 cookie。

CloudFlare 的 Sucuri 似乎阻止 CURL 获取该页面的内容,我的问题是如何绕过 Cloudflare 验证并使用 PHP 访问页面标记?

注意一个由 curl 在当前 PHP 目录中自动创建的 cookie.txt 文件,内容如下:

#Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

#HttpOnly_.dwarozh.net  TRUE    /   FALSE   1512737114  __cfduid    d2074a34e7e0222605c50752e3c5080a81481201114

【问题讨论】:

  • @PeeHaa 您发现的问题重复,仍未接受答案,而且我的问题也有所不同,在将某些问题标记为重复之前请仔细阅读,有时问题可能相似但不同
  • 考虑到你没有解释你认为有什么不同在那里执行答案的结果是什么,也没有解释为什么它们不适合你我不明白为什么它不是重复的。
  • @PeeHaa 如果您查看响应图像,您可以看到它返回请启用 cookie

标签: php curl cookies cloudflare


【解决方案1】:

您是否尝试过更改 CURL_SETOPT 中的用户代理字符串?可能是 cloudflare 基于此阻止。 试试 curl_setopt($ch, CURLOPT_HEADER, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)");

【讨论】:

  • 我试试这个,但还是一样。 请启用 cookie。
  • 它不工作亲爱的:(
猜你喜欢
  • 2010-10-06
  • 1970-01-01
  • 2018-05-30
  • 1970-01-01
  • 1970-01-01
  • 2022-06-14
  • 1970-01-01
  • 2017-02-11
  • 1970-01-01
相关资源
最近更新 更多