当前位置: 首页 > 面试题库 >

file_get_contents()给我403禁止

冷宏茂
2023-03-14
问题内容

我有一个合作伙伴,已经为我创造了一些内容供您抓取。
我可以使用浏览器访问该页面,但是当尝试使用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);


 类似资料:
  • 问题内容: 我正在尝试制作Sitecraper。我是在本地计算机上制作的,在那儿工作得很好。当我在服务器上执行相同操作时,它显示403禁止错误。我正在使用PHP简单HTML DOM解析器 。我在服务器上收到的错误是这样的: 警告:file_get_contents(http://example.com/viewProperty.html?id=7715888)[function.file- get

  • POST请求给出以下请求的禁止错误。 来自Google代码存档的代码https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/recaptcha/recaptcha-php-1.11.zip 函数调用如下 功能如下 请求和响应如下 HTTP\U请求=POST/recaptcha/api/sitev

  • 问题内容: 我制作了供个人使用的python脚本,但不适用于Wikipedia … 这项工作: 这不起作用: 这是错误: 问题答案: 在当前代码内: Python 2.X 的Python 3.X 带有Selenium的Python 3.X(执行Javascript函数) 修改后的版本起作用的原因是因为Wikipedia检查User-Agent是“流行的浏览器”

  • 当我试图构建一个Spring启动项目时,我得到了一个特定存储库的403个禁止错误。这将导致构建失败。 附属国: 错误: 我检查了Maven存储库,它被称为里程碑存储库。不知道该怎么办,请帮我解决这个问题。

  • 我无法理解从phonegap发送ajax请求时,如果没有使用tomcat处理请求,则返回403错误。如果使用码头嵌入工作冷却。 我的控制器 如何在tomcat中完整记录请求,或者如何从spring修复它。在简单的rest中,客户机工作很酷。 获取返回 主机10.0.0.42:8080连接保持活动接受/x请求-使用com。柠檬酸。planReview用户代理Mozilla/5.0(Linux;U;A