不使用python scrapy的原因:虽然我用python写爬虫已有多年,但是我越来越想尝试一下用PHP来写个爬虫。
厌恶了python的包管理
scrapy对于小爬虫来说太繁琐了
python的ORM相对PHP laravel的eloquent都像是半成品
当然scrapy也有不可替代的功能
调试console,这个无人可替代。chrome console XPath?
Goutte看上去不错,但是活跃度太低,一年也没几次提交。
不过,他的主要功能是基于BrowserKit和DomCrawler这两个库实现的。这两个库还算活跃。
Goutte的娱乐小八卦
goutte -痛风
guzzle -狂饮(guzzle是PHP的一个HTTP库)
狂饮导致痛风。。。醉了。goutte这个名字起得真是太潇洒了。。。
使用Goutte爬取大象笔记的标题
composer require fabpot/goutte
安装好goutte之后,编写逻辑代码
require __DIR__ . '/vendor/autoload.php';
use Goutte\Client;
$client = new Client();
$crawler = $client->request;
$crawler->filter('h1')->each(function
($node) {
print $node->text()."\n";
});
运行结果
% php go.php
大象笔记
Goutte默认的请求头
"GET / HTTP/1.1" 200 34881
"-" "Symfony BrowserKit"
更复杂一点的爬虫
例如,爬取搜索引擎的搜索结果。
真实感受是,PHP做起来太痛苦了。合肥PHP培训班给大家举个例子
当对象属性未知时,远不如python的dir好用
爬取结果去重,python set一行搞定,这php ...
试了一把,我还是决定使用python
requests + beautifulsoup。