Goutte Client
Goutte\Client
goutte Client는 다양한 php crawler(web scraper)중의 하나이다.
여기서는 goutte Client의 다양한 예시를 설명드립니다.
Installation
composer require fabpot/goutte
Usage
use Goutte\Client;
$client = new Client();
$crawler = $client->request('GET', 'https://www.symfony.com/blog/');
데이타 가져오기 (Extract data)
데이타를 가져온 후 filter를 이용하여 원하는 특정 데이타를 가져올 수 있다.
$crawler->filter('table.div-table > tbody > tr a')->each(function ($node) use($client) {
$href = $node->attr('href'); // 속성(여기서는 href)를 가져온다.
$view = $client->request('GET', $href); // 링크를 확인 후 안의 내용을 크롤링 한다.
$title = $view->filter('.title > h1')->first()->text(); // 태그안의 첫번째 텍스트를 불러온다.
$view->filter('div.view-content')->each(function ($node) {
$node->filter('img')->each(function ($images) { // 이미지 태그를 읽어온다.
$src = $images->attr('src');
});
$node->filter('source')->each(function ($mp4s) use ($data) { // mp4의 내용을 가져온다.
$src = $mp4s->attr('src');
});
});
- tr:not(.notice) : notice class 가 없는 것