【发布时间】:2014-01-16 11:33:17
【问题描述】:
我希望使用 preg_match 从 Vine 个人资料页面获取关注者值(例如:https://vine.co/u/906265806411804672)。页面源的唯一内容是加载 HTML 的 javascript:
window.App = require('appkit/app').create();
但是,一旦 javascript 加载了 HTML,我就可以看到代码:
<script id="metamorph-20-start" type="text/x-placeholder"></script> "73.1K"
当我使用 preg_match 找到 73.1 值时:
$vineUrl = @file_get_contents('https://vine.co/u/906265806411804672');
preg_match('#<script id="metamorph-20-start" type="text/x-placeholder"></script> "(.*?)"#', $vineUrl, $followCount);
它不搜索呈现的 HTML,只搜索以 HTML 加载页面的 JS。一旦加载了 JS,是否有任何方法可以 preg_match 或在页面完全以 HTML 呈现后嗅探该值的 PHP 替代方法?
【问题讨论】:
-
JS 是客户端,PHP 服务器端。所以如果你用 PHP 获取 URL,JS 永远不会被执行。
-
@Reeno 我有什么选择?用 JS 获取和 preg_match 吗?
-
使用 JS 你不能获取另一个页面。有一些解决方案,但它们非常复杂(如phantomjs.org)
-
最好的方法是等到 Vine 发布 API :)
-
你看过我在下面发布的 API 了吗?
标签: javascript php jquery html preg-match