【发布时间】: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