php 可编写脚本的网络浏览器

标签 php browser scriptable

我想要 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 或元标记重定向吗?

最佳答案

如果我说得对,你想知道某个链接最终通向哪里,如果最终的网址与最初实际点击的网址不同?

如果是这样,我认为最好的方法是让浏览器完成其工作,然后再查看它的结果。这样你就可以得到浏览器的“正常”行为,而不是某些库的行为。

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

关于php 可编写脚本的网络浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15018067/

相关文章:

javascript - 是否可以获取一个已抓取的 html 文件,并获取有关浏览器如何呈现它的信息?

unity3d - 为什么从assetBundle添加MeshCollider时mesh已经被标记为不可访问,如何解决?

php - 指向支持 JBoss、Apache 和 Mysql 的云服务的指针

php - CentOS 中更新的 PHP 7 环境的 VirtualMin 安装错误

php - “管理员”内容不会向在我的 CodeIgniter 电子商务网站上以管理员身份登录的用户显示

php - SQL GROUP BY 和 ORDER BY 无法正常工作

java - 是否可以使用 Java 后端和 Web 技术 UI 创建桌面应用程序

browser - 布局引擎如何工作?

java - Rhino 在 Java 中评估 javascript 对象