file_get_contents()给我403禁止
我有一个合作伙伴,已经为我创造了一些内容供您抓取。
我可以使用浏览器访问该页面,但是当尝试使用user时file_get_contents
,会显示403 forbidden
。
我尝试使用stream_context_create
,但这无济于事-可能是因为我不知道该去哪里。
1)我有什么办法可以刮取数据?
2)如果否,并且不允许合作伙伴将服务器配置为允许我访问,该怎么办?
我尝试使用的代码:
$opts = array( 'http'=>array(
'user_agent' => 'My company name',
'method'=>"GET",
'header'=> implode("\r\n", 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);
以上是 file_get_contents()给我403禁止 的全部内容, 来源链接: utcz.com/qa/423253.html