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

回到顶部