php – file_get_contents()给我403禁止
发布时间:2020-12-13 16:28:52 所属栏目:PHP教程 来源:网络整理
导读:我有一个合作伙伴,为我创造了一些内容来刮. 我可以用我的浏览器访问该页面,但是当尝试用户file_get_contents时,我得到一个403被禁止. 我试过使用stream_context_create,但这不是帮助 – 这可能是因为我不知道应该在那里. 1)有没有办法刮刮数据? 2)如果没有,
我有一个合作伙伴,为我创造了一些内容来刮.
我可以用我的浏览器访问该页面,但是当尝试用户file_get_contents时,我得到一个403被禁止. 我试过使用stream_context_create,但这不是帮助 – 这可能是因为我不知道应该在那里. 1)有没有办法刮刮数据? 我试过使用的代码: $opts = array( 'http'=>array( 'user_agent' => 'My company name','method'=>"GET",'header'=> implode("rn",array( 'Content-type: text/plain;' )) ) ); $context = stream_context_create($opts); //Get header content $_header = file_get_contents($partner_url,false,$context);
这在您的脚本中不是问题,它的一个功能在于您合作Web服务器的安全性.
很难说出什么阻挡你,很可能是某种阻止刮擦的东西.如果您的合作伙伴可以访问其Web服务器设置,可能有助于确定. 您可以做的是通过设置用户代理头来“伪造Web浏览器”,以模拟标准Web浏览器. 我会推荐cURL这样做,很容易找到好的文档来做到这一点. // create curl resource $ch = curl_init(); // set url curl_setopt($ch,CURLOPT_URL,"example.com"); //return the transfer as a string curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); // $output contains the output string $output = curl_exec($ch); // close curl resource to free up system resources curl_close($ch); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |