laravel-Goutte爬虫库

安装Goutte

1)在您的composer.json文件中添加为需求依赖项:

$ composer require fabpot/goutte

Goutte的基本使用

1)在使用Goutte前记得加引用。

use Goutte\Client;

并在构造方法里创建一个Goutte客户端实例。(以laravel的commands为例)

$this->client = new Client();

2) 接下来我们要让爬虫上网,通过request方法提出请求。(crawler:爬虫)

$crawler = $this->client->request(' GET ' , ' https://要爬的网页地址 ');

client的request方法会得到这个网页的内容,封装成一个爬虫对象。我们可以让这个爬虫对象友好的显示成HTML格式。

$crawler->html();

3)然后没什么好说的了,爬虫爬取到整个网页的内容了,接下来就是采集有用的数据,或者通过这个网页上的链接继续爬取。

常用的有点击某个链接,得到该链接里面的内容:

$link = $this->client ->selectLink ( ' 链接的名称' ) ->link();

$crawler = $this->client->click($link);

采集数据:

$crawler ->filter( 'HTML标签 、class样式名、id 等 ' ) ->text();

如果要采集的数据是相同样式一坨数据(例如:七八样式相同的a链接)。

$arr = $crawler->filter('HTML标签 、class样式名、id 等 ')->each(function ($node){ //通过匿名函数遍历一下这一坨相同样式的数据 $item = $node->attr('href'); //这里的$node是一坨里面的一个数据 return $item; //如果不返回,默认返回null }); 最后我们得到的是个数组,里面存放的就是一个一个item对象.

爬取图片、json文件:

和文本数据类似,只要知道图片或者json文件的url,用file_get_contents获取图片和json文件。

可利用json_decode函数来解码json文件。json_encode函数来封装数据成json格式。

掌握以上最常用的爬取方法就能完成普通网页的爬取了。如果觉得还不过瘾,可以去https://symfony.com/doc/current/components/dom_crawler.html学习更多知识。之后会有爬虫实例博客更新。26.jpg

日记本

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

赞赏支持
被以下专题收入,发现更多相似内容