我想尝试从卷曲的网站上获取一个页面,这是我想要做的事情的例子
<?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访问页面标记? < / p>
注意由当前Php目录中的curl自动创建的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
答案 0 :(得分:0)
您是否尝试更改CURL_SETOPT中的用户代理字符串?可能是cloudflare基于此阻塞。 尝试curl_setopt($ ch,CURLOPT_HEADER,&#34; Mozilla / 4.0(兼容; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)&#34;);