在php中抓取安全页面https

在php中抓取安全页面https,php,dom,web-crawler,Php,Dom,Web Crawler,我正在尝试抓取一个安全页面(https),比如使用curl 但我似乎没有从我的爬虫中得到任何数据 php函数 function getDOM($url){ $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_RANGE, '0-100'); $content = curl_exec($ch); curl_close($ch);

我正在尝试抓取一个安全页面(https),比如使用curl

但我似乎没有从我的爬虫中得到任何数据

php函数

function getDOM($url){
   $ch = curl_init($url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_RANGE, '0-100');
   $content = curl_exec($ch);
   curl_close($ch);
   echo $url."<br>";

   echo $content;


   $dom = new simple_html_dom();
   $dom->load($content);

   if($dom){
      return $dom;
   }

   return null;
}

getDOM("https://www.google.co.uk/search?sugexp=chrome,mod=14&sourceid=chrome&ie=UTF-8&q=crawling%20https#hl=en&gs_nf=1&pq=site:stackoverflow.com%20crawling%20https%20php&cp=6&gs_id=s&xhr=t&q=stackoverflow&pf=p&sclient=psy-ab&oq=stacko&aq=0&aqi=g4&aql=&gs_l=&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=8baefeb740f734a5&biw=1280&bih=685");
函数getDOM($url){ $ch=curl\u init($url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_范围,'0-100'); $content=curl\u exec($ch); 卷曲关闭($ch); 回显$url。“
”; echo$内容; $dom=新的简单html\U dom(); $dom->load($content); 如果($dom){ 返回$dom; } 返回null; } getDOM(“https://www.google.co.uk/search?sugexp=chrome,mod=14&sourceid=chrome&ie=UTF-8&q=crawling%20https\chl=en&gs\u-nf=1&pq=site:stackoverflow.com%20crawling%20https%20php&cp=6&gs\u-id=s&xhr=t&q=stackoverflow&pf=p&sclient=psy-ab&oq=stacko&aq=0&aq=g4&aql=&gs\pbx=1&bav=on.2,或.r\u-gc.r\u-qf=b&b735=bif5; 有什么我可以做的抓取一个https,因为我似乎没有这个问题与正常的网页

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

将此添加到您的代码中。这将允许任何证书通过,因此您可以使用它(但一般来说这不是一个好主意)。

您的服务器的wget可以通过https下载文件吗?我正在使用xamptry在我的计算机上进行抓取删除'curl_setopt($ch,CURLOPT_RANGE,'0-100')`尝试使用
CURLOPT_标题
并将输出放在此处!感谢您的评论,例如google不允许实现curlopt_range Create answer,但您能否解释一下为什么这通常不是一个好主意?这将关闭SSL证书的验证。如果有人设法与(比如)你的银行交换IP,你将连接到它,并获得假证书,但你的应用程序将接受它。然后,您将向坏人提供登录名