clyo / browser-kitty
Symfony BrowserKit 组件的扩展
dev-master
2020-10-20 02:13 UTC
Requires
- php: >=7.2.5
- symfony/dom-crawler: ^4.4|^5.0
Requires (Dev)
- symfony/css-selector: ^4.4|^5.0
- symfony/http-client: ^4.4|^5.0
- symfony/mime: ^4.4|^5.0
- symfony/process: ^4.4|^5.0
Suggests
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)
。