Laravel + Goutte 开始爬虫旅行

本文介绍如何使用PHP的Goutte库进行网页抓取,包括安装、基本使用和设置Header等技巧,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说到爬虫,我们第一印象将会是 Python 。因其拥有丰富的网络抓取模块,语法简洁易上手,开发效率高等优点。

那么 PHP 如何开始爬虫之路呢,PHP 也有许多强大第三方库支持。比较著名的 PHP 爬虫框架就有 phpspider, PHP Selenium。

接下来我们将使用 Goutte 这个 PHP 的爬虫库来自己写创建一个简易的爬虫。

安装

Goutte Git地址

Goutte 是一个用于 PHP 的屏幕抓取和web爬行库。

Goutte 提供了一个很好的 API 来抓取网站并从 HTML/XML 响应中提取数据。

composer require fabpot/goutte

使用

use Goutte\Client;

public function spider($url)
{
    $client  = new Client();
    $crawler = $client->request('GET', $url);

    // 这里我使用的是 Xpath 
    $name    = $crawler->filterXPath('//div[@class="company-name"]')->text();

    // 也可以使用 filter 选择器和 Jquery 一样,可以支持嵌套以及 each 循环
    $navs    = $crawler->filter('#menus li');

    $navs->each(function ($node) {
        echo $node->text().'<br>';
    });

    echo $name;
}

阅读 BrowserKitDomCrawlerHttpClient Symfony 组件的文档,了解关于使用 Goutte 可以做什么的更多信息。

设置 Header

由于 BrowserKit 将在执行期间覆盖用户代理头,因此必须使用setServerParameter()将用户代理头放回去。

$client = new Client();
$client->setServerParameter('HTTP_USER_AGENT','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36');
$client->setServerParameter('HTTP_ACCEPT_LANGUAGE','zh-CN,zh;q=0.9');

$_SERVER 文档

至此,分析一下需要抓取数据的规律,就可以去写一个自己的爬虫了。抓取一些简单的网站已经绰绰有余了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值