【问题标题】:php scriptable web browserphp 可编写脚本的网络浏览器
【发布时间】:2013-02-07 17:02:30
【问题描述】:

我想要 php 中的 url 重定向跟踪器函数,例如 http://www.wheregoes.com/

我要检测四种重定向:

  • Http 301 重定向
  • Http 302 重定向
  • 元标记重定向
  • javascript 重定向

如果我使用curl,我可以很容易地检测到301、302重定向,但是很难检测到其他两个重定向。

所以我想要一个可编写脚本的网络浏览器,我将使用如下库:

$browser = Browser::createBrowser('chrome');
$delay = 10; // (This is a important parameter for detecting javascript or meta tag redirection).

$browser->load($url, $delay, function onLoadComplete($arr_track_url){
    print_r($arr_track_url);
});

我搜索并遇到了一些库,例如 http://www.simpletest.org/en/browser_documentation.html,但它们不支持 javascript 和元标记重定向。

有没有 php 脚本浏览器?或者我可以轻松检测到 javascript 或元标记重定向吗?

【问题讨论】:

标签: php browser web scriptable


【解决方案1】:

如果我猜对了,您想知道某个链接 finally 指向的位置,如果最终 url 与最初实际点击的 url 不同?

如果是这样,我认为最好的方法是让浏览器完成它的工作,然后在它出现的地方找到它。通过这种方式,您可以获得浏览器的“正常”行为,而不是某些库的行为。

使用(隐藏的)iframe 将网址加载到其中。然后等待 window.load 事件或其他事件,然后查询文档位置。我现在没有尝试过,但对我来说听起来可行......

【讨论】:

  • 我也认为它不能那么容易地解决一些库代码。但是我怎样才能用 php 交互浏览器实例呢?
  • 嗯,不知道你用“库”指的是什么......但它确实可以完成浏览器所做的一切,这应该是最终目标。还是我误解了你的问题?
  • 我想用php开发像wheregoes.com这样的网站,但它不支持元标记重定向和javascript重定向。如何检测服务器端的所有重定向?
  • 啊,所以你想在服务器端工作,我明白你的意思是在客户端。无论如何,相同的方法:使用无头浏览器而不是 iframe。一个实现 javascript 的无头浏览器。
猜你喜欢
  • 2012-09-14
  • 1970-01-01
  • 1970-01-01
  • 2012-10-30
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 2014-04-10
  • 2011-01-31
相关资源
最近更新 更多