socloz/goutte

此包已被弃用且不再维护。未建议替代包。

简单的PHP网页抓取器

维护者

详细信息

github.com/SoCloz/Goutte

主页

源码

安装量: 20,167

依赖者: 1

建议者: 0

安全: 0

星星: 0

关注者: 11

分支: 918

类型:应用程序

v1.0.1 2013-03-08 08:00 UTC

This package is not auto-updated.

Last update: 2020-01-20 05:26:49 UTC


README

Goutte 是一个用于 PHP 的屏幕抓取和网页爬取库。

Goutte 提供了一个优雅的 API 来爬取网站并从 HTML/XML 响应中提取数据。

要求

Goutte 与 PHP 5.3.3 或更高版本兼容。

安装

安装 Goutte 非常简单。下载 Goutte.phar 文件即可!

使用方法

在脚本中引入 Goutte phar 文件以使用 Goutte

require_once '/path/to/goutte.phar';

创建一个 Goutte 客户端实例(它扩展了 Symfony\Component\BrowserKit\Client

use Goutte\Client;

$client = new Client();

使用 request() 方法进行请求

$crawler = $client->request('GET', 'http://www.symfony-project.org/');

该方法返回一个 Crawler 对象(Symfony\Component\DomCrawler\Crawler)。

点击链接

$link = $crawler->selectLink('Plugins')->link();
$crawler = $client->click($link);

提交表单

$form = $crawler->selectButton('sign in')->form();
$crawler = $client->submit($form, array('signin[username]' => 'fabien', 'signin[password]' => 'xxxxxx'));

提取数据

$nodes = $crawler->filter('.error_list');
if ($nodes->count())
{
  die(sprintf("Authentication error: %s\n", $nodes->text()));
}

printf("Nb tasks: %d\n", $crawler->filter('#nb_tasks')->text());

更多信息

阅读 BrowserKit 和 DomCrawler Symfony 组件的文档,了解更多关于 Goutte 可以做什么的信息。

技术信息

Goutte 是围绕以下优秀的 PHP 库的薄包装

  • Symfony 组件:BrowserKit、ClassLoader、CssSelector、DomCrawler、Finder 和 Process

  • Guzzle

许可

Goutte 采用 MIT 许可证。