Php 文件获取内容()给我403禁止

Php 文件获取内容()给我403禁止,php,html,http-headers,screen-scraping,Php,Html,Http Headers,Screen Scraping,我有一个合作伙伴,他为我创建了一些内容供我浏览。 我可以使用浏览器访问该页面,但当尝试使用文件获取内容时,我会得到一个403禁止 我尝试过使用stream\u context\u create,但那没有帮助-可能是因为我不知道应该在那里放什么 1) 我有什么办法来收集数据吗? 2) 若否,若不允许合作伙伴将服务器配置为允许我访问,那个么我该怎么办 我尝试使用的代码: $opts = array( 'http'=>array( 'user_agent' => 'My com

我有一个合作伙伴,他为我创建了一些内容供我浏览。
我可以使用浏览器访问该页面,但当尝试使用
文件获取内容时,我会得到一个
403禁止

我尝试过使用
stream\u context\u 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); 

我想有两件事,如果你打开一个带有特殊字符(如空格)的URI,你需要用urlencode()对URI进行编码,如果启用了fopen包装器,URL可以用作此函数的文件名。

//首先设置用户代理

ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 6.0)'); 

我还打算推荐卷发。我也用过。你可以将你的用户代理设置为任何你想要的,所以只要选择一个像IE这样的普通代理,你很可能会通过这个锁定。@clerick,谢谢,我会试试的。我只是想知道如何在我的web服务器上启用
CURL
,因为我收到一条消息说
CURL\u init()
是一个未知函数。祝你好运,我想这可能会帮助你安装CURL。我已经试过了,但没有成功。但可能是因为我没有使用可识别的代理。在调用
file\u get\u contents()
并在调用之前添加此
ini\u set
时,我出现了禁止的403错误。谢谢。我想先使用curl,它在phpinfo中安装、启用并显示,但没有定义函数,所以我使用普通的file\u get\u contents函数。事实上,GithubAPI需要一个浏览器代理。谢谢你的解决方案+1
ini_集('user_agent','Mozilla/5.0(Windows;U;Windows NT 5.1;en-US;rv:1.8.1.13)Gecko/20080311 Firefox/2.0.0.13')对我来说很有用。