如您所知,您可以使用Chrome开发者工具或Firebug获取网站提出的所有请求。像这样:
我需要使用PHP获取此信息,我应该使用哪种方法?感谢。
答案 0 :(得分:2)
只有PHP,你不能。 (好吧,你可以,但你必须编码"浏览器引擎")。
使用php,您可以使用cURL甚至file_get_contents
向地址发出请求并下载响应(前提是您的php.ini允许)。例如:
$body = file_get_contents('http://www.google.com');
var_dump($body);
$body
包含' http://www.google.com'的响应正文,在本例中为HTML文件。
然而,URL有时会回复一些与HTML文件不同的东西(可以是XML,json,明文等......)
cURL允许您获取并检查响应标头,您可以使用它来发现响应的内容类型。 Check this SO post for further details
某些标题可能会指向'也适用于其他资源,这意味着您还需要正确解析标题。
现在您需要解析响应,尊重响应内容类型标头。如果它是json或纯文本,那么你很高兴,因为据我所知,这些类型的文件无法提出进一步的请求。
但是,让我们假设它是正常的,普通的纯HTML。您可以使用 DOMDocument 来解析HTML。
$doc = new DOMDocument();
$doc->loadHTML($body);
但是,您可能需要先处理错误或验证并修复html源代码,因为DOMDocument非常容易出现格式错误的HTML文档。
您需要遍历HTML文档并查找HTML标记'请求资源。例如,图像标签,脚本标签,对象标签等......
这可能涉及大量编码。
然而,即使在所有这些工作之后,仍然存在问题。现代页面广泛使用异步请求(例如,采用基于角度的页面)。
为了获取这些异步请求,您需要在PHP中创建一个javascript解析器和解释器(这是疯狂的)或依赖第三方工具(例如,您可以通过数据nodejs来运行你的javascript)。