让页面加载,然后获取html内容

时间:2019-01-24 12:23:28

标签: javascript php html web-scraping

所以,首先我有这段代码

$html = file_get_html('https://www.roblox.com/groups/'.$groupid);
$elem = $html->find('div[id=ctl00_cphRoblox_GroupClosed]', 0);

然后在执行此操作时,我得到了

<div id="ctl00_cphRoblox_GroupClosed">                                            
    <p>Group Closed</p>
</div>

在这里我会过滤掉所有内容,直到到达Group Closed


现在,在ROBLOX更新之后,他们确定该页面将由javascript生成。因此,当我尝试使用file_get_html函数时,它不会给我很多帮助。接下来,他们改变了

<div id="ctl00_cphRoblox_GroupClosed"></div>

<span ng-if="showJoinGroupButtonUI() == groupConstants.joinStatus.groupClosed" class="small group-membership-text ng-binding ng-scope" ng-bind="layout.closedGroupText">Group Closed</span>

我真的不知道如何让页面加载,并抓取网站的html。如您所见,here对。加载需要很多时间。


有人将我的问题设置为7年前一个问题的副本。我正在使用与Directadmin共享的虚拟主机。因此,安装PhantomJS对我来说真的行不通。.

1 个答案:

答案 0 :(得分:0)

不知道您可以再使用php来执行此操作,因为pphp将从服务器返回时返回页面的源代码。

您可能希望查看其他解决方案,例如puppeteer,phantomjs等。 这些是无头js引擎,实际上可以等待函数加载,并像在浏览器中一样获取源代码和DOM元素。