fabpot / goutte
Requires
- php: >=7.1.3
- symfony/browser-kit: ^4.4|^5.0|^6.0
- symfony/css-selector: ^4.4|^5.0|^6.0
- symfony/deprecation-contracts: ^2.1|^3
- symfony/dom-crawler: ^4.4|^5.0|^6.0
- symfony/http-client: ^4.4|^5.0|^6.0
- symfony/mime: ^4.4|^5.0|^6.0
Requires (Dev)
- symfony/phpunit-bridge: ^6.0
This package is auto-updated.
Last update: 2023-04-01 09:08:45 UTC
README
Goutte 是一个用于 PHP 的屏幕抓取和网页爬取库。
Goutte 提供了一个便捷的 API 来爬取网站并从 HTML/XML 响应中提取数据。
警告:此库已弃用。从 v4 版本开始,Goutte 成为了一个简单代理,用于访问来自 HttpBrowser 类 的 Symfony BrowserKit 组件。为了迁移,请将代码中的 Goutte\Client
替换为 Symfony\Component\BrowserKit\HttpBrowser
。
要求
Goutte 依赖于 PHP 7.1+。
安装
在您的 composer.json
文件中将 fabpot/goutte
添加为依赖项
composer require fabpot/goutte
使用
创建一个 Goutte 客户端实例(它扩展了 Symfony\Component\BrowserKit\HttpBrowser
)
use Goutte\Client; $client = new Client();
使用 request()
方法发起请求
// Go to the symfony.com website $crawler = $client->request('GET', 'https://www.symfony.com/blog/');
该方法返回一个 Crawler
对象(Symfony\Component\DomCrawler\Crawler
)。
要使用您自己的 HTTP 设置,您可以为 Goutte 创建并传递一个 HttpClient 实例。例如,要添加 60 秒的请求超时
use Goutte\Client; use Symfony\Component\HttpClient\HttpClient; $client = new Client(HttpClient::create(['timeout' => 60]));
点击链接
// Click on the "Security Advisories" link $link = $crawler->selectLink('Security Advisories')->link(); $crawler = $client->click($link);
提取数据
// Get the latest post in this category and display the titles $crawler->filter('h2 > a')->each(function ($node) { print $node->text()."\n"; });
提交表单
$crawler = $client->request('GET', 'https://github.com/'); $crawler = $client->click($crawler->selectLink('Sign in')->link()); $form = $crawler->selectButton('Sign in')->form(); $crawler = $client->submit($form, ['login' => 'fabpot', 'password' => 'xxxxxx']); $crawler->filter('.flash-error')->each(function ($node) { print $node->text()."\n"; });
更多信息
阅读关于 BrowserKit、DomCrawler 和 HttpClient 的 Symfony 组件文档,以获取有关 Goutte 的更多信息。
发音
Goutte 发音为 goot
,即与 boot
同韵,而不是 out
。
技术信息
Goutte 是围绕以下 Symfony 组件的一个薄层包装: BrowserKit、CssSelector、DomCrawler 和 HttpClient。
许可证
Goutte 使用 MIT 许可证。