【问题标题】:file_get_contents not returning entire sitefile_get_contents 不返回整个网站
【发布时间】:2018-02-19 13:34:56
【问题描述】:

我一直在尝试使用 file_get_contents 检索网站 (https://www.programsgulf.com/) 的内容。不幸的是,生成的输出缺少许多元素(图像、格式、样式等...),基本上看起来不像我要检索的原始页面。

这在我尝试使用相同方法检索的任何其他 URL 之前从未发生过,但由于某种原因,这个特定 URL (https://www.programsgulf.com/) 拒绝正常工作。

我使用的代码是:

<?php
$homepage = file_get_contents('https://www.programsgulf.com/');
echo $homepage;
?>

我错过了什么吗?所有有关如何使其正常工作的建议将不胜感激。感谢大家的时间和考虑。

【问题讨论】:

  • 您正在寻找的是一个蜘蛛机器人。例如:github.com/mvdbos/php-spider,但还有很多其他的。请考虑一下您在使用该软件做什么。你需要这样做吗,需要许可吗?
  • “这在我尝试使用相同方法检索的任何其他 URL 之前从未发生过” — 我严重怀疑

标签: php wordpress file-get-contents


【解决方案1】:

您不能只是回显某人的 html 并期望它能够工作。除非服务器(错误)配置了 CORS 规则,否则资产(如脚本、图像或样式表)将不会加载,因为 same-origin policy 违规。这是每个现代浏览器中您无法克服的保护层。

如果你真的想让它工作,你必须在服务器端下载每个资产,将它们存储在本地,并将代码中的链接替换到本地副本。这正是web scraping/在线代理软件的工作原理。

【讨论】:

  • 作为评论会更好
  • 您可以根据自己的喜好对我对其他问题的回答投反对票。这仍然不是一个好的答案。
  • 感谢您的意见。
猜你喜欢
  • 2016-03-22
  • 2012-12-16
  • 1970-01-01
  • 2014-02-17
  • 2019-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
相关资源
最近更新 更多