php 网站爬虫入门 - Goutte

发布时间: 2018-01-24 16:49:37 作者: 大象笔记

不使用 python scrapy 的原因

虽然我用 python 写爬虫已有多年,但是我越来越想尝试一下用 PHP 来写个爬虫

当然 scrapy 也有不可替代的功能

PHP 的爬虫库

https://github.com/BruceDone/awesome-crawler

Goutte 看上去不错,但是活跃度太低,一年也没几次提交。

不过,他的主要功能是基于 BrowserKit 和 DomCrawler 这两个库实现的。这两个库还算活跃。

Goutte 的娱乐小八卦

狂饮导致痛风。。。醉了。goutte 这个名字起得真是太潇洒了。。。

使用 Goutte 爬取大象笔记的标题

composer require fabpot/goutte

安装好 goutte 之后,编写逻辑代码

<?php

require __DIR__ . '/vendor/autoload.php';

use Goutte\Client;

$client = new Client();
$crawler = $client->request('GET', 'https://www.sunzhongwei.com');
$crawler->filter('h1')->each(function ($node) {
        print $node->text()."\n";
});

运行结果

% php go.php
大象笔记

Goutte 默认的请求头

"GET / HTTP/1.1" 200 34881 "-" "Symfony BrowserKit"

更复杂一点的爬虫

例如,爬取搜索引擎的搜索结果。

真实感受是,PHP 做起来太痛苦了。举个例子

试了一把,我还是决定使用 python requests + beautifulsoup。

我是一名山东烟台的开发者,联系作者