【发布时间】:2014-03-04 22:42:03
【问题描述】:
是否可以使用 PHP 保存从 HTTP 请求下载的所有资源?
例如:使用 curl、wget 或类似方法获取在浏览器中加载页面所需的所有文件,而不是仅获取页面的 HTML 内容。
我不想获取所有链接,然后使用直接 curl 下载每个链接。我想要一种只做一次的方法。我认为这是可能的,因为在浏览器中我也只做一个 url 请求来获取所有资源。
编辑: 这里的重点是模拟浏览器的行为。如何使用 PHP 保存整个页面。 如果必须通过几个步骤来完成,应该遵循什么逻辑? 即使在提取链接之后,我在从页面获取所有文件时也遇到了很大的问题,因为我发现很难存储会话数据并将其重用于进一步的卷曲。
【问题讨论】:
-
浏览器为您发出额外的请求。
-
这是根本不正确的:在浏览器中我也只做一个 url 请求来获取所有资源。
-
浏览器发出许多请求以获取所有必要的资源。您不必相信我们的话,打开浏览器的开发人员工具,转到网络选项卡并按 F5。
-
没有错。我只做一个请求。其余的由浏览器完成,而不是我。但我显然不是在这里争论一个请求的事情。例如,重点是如何保存所有图像。有没有办法模拟浏览器行为并在 PHP 中存储页面资源?完成这项工作的逻辑应该是什么?获取链接、保存会话数据、cookie 和引用?有没有办法只保留这些数据以供进一步卷曲?希望你明白我的意思