socloz / goutte
此包已被弃用且不再维护。未建议替代包。
简单的PHP网页抓取器
v1.0.1
2013-03-08 08:00 UTC
Requires
- php: >=5.3.0
- ext-curl: *
- guzzle/guzzle: >=3.0, <3.4
- symfony/browser-kit: ~2.1
- symfony/css-selector: ~2.1
- symfony/dom-crawler: ~2.1
- symfony/finder: ~2.1
- symfony/process: ~2.1
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
许可
Goutte 采用 MIT 许可证。