【问题标题】:Let page load, then get the html contents [duplicate]让页面加载,然后获取html内容[重复]
【发布时间】:2019-06-18 04:29:20
【问题描述】:

所以,首先我有这个代码

$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,对我来说真的不行..

【问题讨论】:

    标签: javascript php html web-scraping


    【解决方案1】:

    不确定您是否可以再使用 php 执行此操作,因为 pphp 将返回页面的源代码,因为它从服务器返回。

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

    【讨论】:

      猜你喜欢
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-30
      • 1970-01-01
      • 2021-03-10
      相关资源
      最近更新 更多