unbale用CURL php获取页面

时间:2016-12-08 13:01:08

标签: php curl cookies cloudflare

我想尝试从卷曲的网站上获取一个页面,这是我想要做的事情的例子

<?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。

enter image description here

似乎 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

1 个答案:

答案 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;);