clyo/browser-kitty

Symfony BrowserKit 组件的扩展

dev-master 2020-10-20 02:13 UTC

This package is auto-updated.

Last update: 2024-09-20 10:55:13 UTC


README

BrowserKitty 是 Symfony 的 BrowserKit 组件的一个分支,它模拟了网络浏览器的行为,允许你通过程序进行请求、点击链接和提交表单。

该组件包含一个具体实现,使用 HttpClient 组件进行实际的 HTTP 请求。

BrowserKitty 通过暴露与 HTTP 重定向相关的详细信息扩展了 BrowserKit 的功能。它允许你获取每个重定向的响应详细信息。以下是一个快速示例:

require("../vendor/autoload.php");

use Clyo\Kitty;

$url = "example.com";

$web = new KittyBrowser();
$web->followRedirects(true);
$web->followMetaRefresh(true);
$web->setMaxRedirects(5);
$web->upgradeInsecureRequests(true);

$web->request('GET', $url);

foreach ( $web->getRedirectInfo() as $count => $response ) {
    echo str_repeat(" ", $count) . "$previousUrl [{$response->getStatusCode()}]\n";
    echo str_repeat(" ", $count) . "|-> ";
    $previousUrl = $response->getHeader('location');
}

你还可以在 examples/ 文件夹中查看一个工作示例。

BrowserKitty 还在请求中实现了 upgrade-insecure-requests。这允许服务器响应一个 307 重定向,告知安全的地址。要激活该功能,请确保在调用 request() 方法之前执行 upgradeInsecureRequests(true)

来自 Symphony Browser-Kit 的资源