【问题标题】:phpQuery - make php script wait until iframe content has loadedphpQuery - 让 php 脚本等到 iframe 内容加载完毕
【发布时间】:2011-08-13 10:28:50
【问题描述】:

我正在使用 phpQuery 库 (http://code.google.com/p/phpquery/) 来解析网页,但偶然发现了在获取使用 Ajax 来显示所有内容的网站时遇到的问题。

我发现如果我将其加载到 iframe 中,我可以获得所有内容(下面的代码有效):

$temp = phpQuery::newDocumentHTML('<iframe src="" id="test">a</iframe>')->find('iframe[id=test]')->attr('src', 'http://www.example.com/');
echo $temp;

但是,我的问题是,我怎样才能让我的 PHP 脚本等到 iframe 加载后再继续?

下面是 jQuery 等价物,但我想知道是否有人知道如何使用 phpQuery 做等价物?

$(iFrame).attr('src', 'http://www.example.com');
$(iFrame).load(function(){
    alert("Loaded");
});

提前致谢。

【问题讨论】:

  • phpQuery =/= jQuery,phpQuery 不会加载 iframe SRC。 iframe 将保持为空。

标签: php ajax parsing web-scraping phpquery


【解决方案1】:

但是,我的问题是,如何让我的 PHP 脚本等到 iframe 加载完毕后再继续?

这不是 PHP 端 HTML 解析的工作方式。 phpQuery 只是解析 HTML 代码,它不任何事情——比如加载和/或渲染 iframe,或者运行 JavaScript 事件。

可能有一种方法可以做你想做的事 - 如果你告诉我们那是什么!

【讨论】:

  • 感谢您的回复@Pekka。一个例子:假设我想解析来自 nfl.com 的分数(在主导航正下方的灰色栏中)。我目前无法在不将其加载到 iframe 的情况下获取该栏的值,因为分数是由 ajax 加载的。但是,当我将页面加载到 iframe 中时(如我原始帖子中的代码所示),脚本不会等待 iframe 完全加载,然后继续处理。您是否知道将带有 Ajax 内容的网页加载到变量中以使用 phpQuery 进行解析的方法?再次感谢。
  • @user 完全不可能单独使用 phpQuery - 它只会解析 HTML,但不会执行 JavaScript。也许这有帮助:Execute javascript in PHP
猜你喜欢
  • 2013-06-30
  • 1970-01-01
  • 2018-02-20
  • 2016-07-31
  • 2016-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
相关资源
最近更新 更多