Goutte 一個簡單易用的 PHP 爬蟲類庫

Summer發表於2017-01-23

Goutte 提供了優雅的 API 進行連結抓取,和解析 HTML 文件。

以下示例程式碼用來抓取 PHPUnit 的文件:

public function scrapePHPUnitDe()
{
    $client = new Client();
    $crawler = $client->request('GET', 'https://phpunit.de/manual/current/en/index.html');
    $toc = $crawler->filter('.toc');
    file_put_contents(base_path('resources/docs/').'index.html', $toc->html());

    $crawler->filter('.toc > dt a')->each(function($node) use ($client) {
        $href = $node->attr('href');
        $this->info("Scraped: " . $href);
        $crawler = $client->request('GET', $href);
        $chapter = $crawler->filter('.col-md-8 .chapter, .col-md-8 .appendix')->html();
        file_put_contents(base_path('resources/docs/').$href, $chapter);
    });
}

Goutte 主要使用以下 PHP 類庫:

  • 頁面解析:Symfony 的 BrowserKit , CssSelector 和 DomCrawler;
  • HTTP 請求: Guzzle
本作品採用《CC 協議》,轉載必須註明作者和本文連結
擯棄世俗浮躁,追求技術精湛

相關文章