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 協議》,轉載必須註明作者和本文連結