php 网站爬虫入门

不使用 python scrapy 的原因

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

厌恶了 python 的包管理

scrapy 对于小爬虫来说太繁琐了

python 的 ORM 相对 PHP laravel 的 eloquent 都像是半成品

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

调试 console,这个无人可替代。chrome console XPath?

PHP 的爬虫库

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

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

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

Goutte 的娱乐小八卦

goutte - 痛风

guzzle - 狂饮 (guzzle 是 PHP 的一个 HTTP 库)

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

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

composerrequirefabpot/goutte

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

require__DIR__.'/vendor/autoload.php';

useGoutte\Client;$client =newClient();$crawler = $client->

request('GET','https://www.sunzhongwei.com');$crawler->filter('h1')

->each(function($node){

print$node->text()."\n";});

运行结果

% phpgo.php大象笔记Goutte 默认的请求头

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

更复杂一点的爬虫

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

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

当对象属性未知时,远不如 python 的 dir 好用

爬取结果去重,python set 一行搞定,这 php ...

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

更多分享,敬请关注

本文来源网络,侵立删!

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180126A033TK00?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区