Php 使文件\u get\u contents()等待网站完全加载

Php 使文件\u get\u contents()等待网站完全加载,php,file-get-contents,Php,File Get Contents,我正在尝试将此网站放入我的php变量: 你可以看到,网页第一次加载完成后,网站才开始加载网站的真实内容 file_get_contents("https://www.warcraftlogs.com/rankings/server/393/latest/#class=Druid&spec=Feral"); 仅返回stock empty网站,而不返回第二步中加载的表中的实际内容 有没有办法让文件内容等待站点加载?您要查看的数据位于不同的url上: 您要查看的数据位于不同的url上: 您

我正在尝试将此网站放入我的php变量:

你可以看到,网页第一次加载完成后,网站才开始加载网站的真实内容

file_get_contents("https://www.warcraftlogs.com/rankings/server/393/latest/#class=Druid&spec=Feral");
仅返回stock empty网站,而不返回第二步中加载的表中的实际内容


有没有办法让文件内容等待站点加载?

您要查看的数据位于不同的url上:


您要查看的数据位于不同的url上:


您要查看的数据位于不同的url上:


您要查看的数据位于不同的url上:


该站点使用ajax,您可以找到ajax负载并获得它。 真正的股票url是:

file_get_contents("https://www.warcraftlogs.com/rankings/table/dps/6/0/5/20/1/Druid/Feral/0/393/?search=&page=1");

该站点使用ajax,您可以找到ajax负载并获得它。 真正的股票url是:

file_get_contents("https://www.warcraftlogs.com/rankings/table/dps/6/0/5/20/1/Druid/Feral/0/393/?search=&page=1");

该站点使用ajax,您可以找到ajax负载并获得它。 真正的股票url是:

file_get_contents("https://www.warcraftlogs.com/rankings/table/dps/6/0/5/20/1/Druid/Feral/0/393/?search=&page=1");

该站点使用ajax,您可以找到ajax负载并获得它。 真正的股票url是:

file_get_contents("https://www.warcraftlogs.com/rankings/table/dps/6/0/5/20/1/Druid/Feral/0/393/?search=&page=1");

为了了解网站上发生了什么,请尝试打开浏览器的网络检查器。您将看到页面本身被加载,然后您将看到各种其他资源被加载,比如CSS文件、JS文件、图像和其他一些页面

其他页面之一是:

看起来主站点发出了一个AJAX请求,以从该URL获取附加数据。请注意,file_get_contents()无法一次获取所有内容,因为file_get_contents()不会解析网站或评估任何JS(JS是触发AJAX请求的因素)。解决方案很简单——与其使用file_get_contents()来抓取主站点,不如使用它来抓取包含数据的辅助页面

如果您试图获取此URL,则必须深入挖掘。如果打开主页,您会发现页面上嵌入了一段JS,如下所示:

function loadTable()
{
    var loadString = '/rankings/table/' + filterMetric + '/' + zoneID + '/' + filterBoss + '/' + filterDifficulty + '/' + filterSize + '/' + filterRegion + '/' + filterClass + '/' + filterSpec + '/' + filterBracket + '/' + filterServer + '/' + '?' + "search=" + filterSearch + "&page=" + filterPage
    $("#table-container").load(loadString, tableLoaded)
}

请注意它是如何动态地创建带有所需参数的字符串的。然后它调用$.fn.load(),这将触发对URL的AJAX请求。

为了了解站点上发生的情况,请尝试打开浏览器的网络检查器。您将看到页面本身被加载,然后您将看到各种其他资源被加载,比如CSS文件、JS文件、图像和其他一些页面

其他页面之一是:

看起来主站点发出了一个AJAX请求,以从该URL获取附加数据。请注意,file_get_contents()无法一次获取所有内容,因为file_get_contents()不会解析网站或评估任何JS(JS是触发AJAX请求的因素)。解决方案很简单——与其使用file_get_contents()来抓取主站点,不如使用它来抓取包含数据的辅助页面

如果您试图获取此URL,则必须深入挖掘。如果打开主页,您会发现页面上嵌入了一段JS,如下所示:

function loadTable()
{
    var loadString = '/rankings/table/' + filterMetric + '/' + zoneID + '/' + filterBoss + '/' + filterDifficulty + '/' + filterSize + '/' + filterRegion + '/' + filterClass + '/' + filterSpec + '/' + filterBracket + '/' + filterServer + '/' + '?' + "search=" + filterSearch + "&page=" + filterPage
    $("#table-container").load(loadString, tableLoaded)
}

请注意它是如何动态地创建带有所需参数的字符串的。然后它调用$.fn.load(),这将触发对URL的AJAX请求。

为了了解站点上发生的情况,请尝试打开浏览器的网络检查器。您将看到页面本身被加载,然后您将看到各种其他资源被加载,比如CSS文件、JS文件、图像和其他一些页面

其他页面之一是:

看起来主站点发出了一个AJAX请求,以从该URL获取附加数据。请注意,file_get_contents()无法一次获取所有内容,因为file_get_contents()不会解析网站或评估任何JS(JS是触发AJAX请求的因素)。解决方案很简单——与其使用file_get_contents()来抓取主站点,不如使用它来抓取包含数据的辅助页面

如果您试图获取此URL,则必须深入挖掘。如果打开主页,您会发现页面上嵌入了一段JS,如下所示:

function loadTable()
{
    var loadString = '/rankings/table/' + filterMetric + '/' + zoneID + '/' + filterBoss + '/' + filterDifficulty + '/' + filterSize + '/' + filterRegion + '/' + filterClass + '/' + filterSpec + '/' + filterBracket + '/' + filterServer + '/' + '?' + "search=" + filterSearch + "&page=" + filterPage
    $("#table-container").load(loadString, tableLoaded)
}

请注意它是如何动态地创建带有所需参数的字符串的。然后它调用$.fn.load(),这将触发对URL的AJAX请求。

为了了解站点上发生的情况,请尝试打开浏览器的网络检查器。您将看到页面本身被加载,然后您将看到各种其他资源被加载,比如CSS文件、JS文件、图像和其他一些页面

其他页面之一是:

看起来主站点发出了一个AJAX请求,以从该URL获取附加数据。请注意,file_get_contents()无法一次获取所有内容,因为file_get_contents()不会解析网站或评估任何JS(JS是触发AJAX请求的因素)。解决方案很简单——与其使用file_get_contents()来抓取主站点,不如使用它来抓取包含数据的辅助页面

如果您试图获取此URL,则必须深入挖掘。如果打开主页,您会发现页面上嵌入了一段JS,如下所示:

function loadTable()
{
    var loadString = '/rankings/table/' + filterMetric + '/' + zoneID + '/' + filterBoss + '/' + filterDifficulty + '/' + filterSize + '/' + filterRegion + '/' + filterClass + '/' + filterSpec + '/' + filterBracket + '/' + filterServer + '/' + '?' + "search=" + filterSearch + "&page=" + filterPage
    $("#table-container").load(loadString, tableLoaded)
}

请注意它是如何动态地创建带有所需参数的字符串的。然后调用$.fn.load(),这将触发对URL的AJAX请求。

您可以从此URL加载数据:


您可以从此url加载数据:


您可以从此url加载数据:


您可以从此url加载数据: