Laravel 및 spatie/crawler를 사용한 웹 스크래핑

2168 단어 laravelspatie
Web Scraping With PHP에 대한 많은 기사 중에서 여기에서 유용한 정보를 찾을 수 있습니다.
우리는 완전히 미쳐버리지 않고 크롤러를 작성하기 위한 훌륭한 기능을 제공하는 spatie/crawler 패키지를 사용할 것입니다!
일반적인 "최선의 방법"은 없다는 점을 명심하십시오. 각 접근 방식에는 필요한 것, 작업 방식 및 달성하고자 하는 것에 따라 사용 사례가 있습니다.
참고: 웹사이트를 스크랩하기 전에 서비스 약관을 읽고 스크랩해도 괜찮은지 확인하세요.

사용 사례

자체 크롤러 프로젝트를 구축하여 모든 웹사이트의 콘텐츠를 가져옵니다.

설정 및 설치

Composer를 통해 패키지 설치:

composer require guzzlehttp/psr7 ^1.8.3
composer require spatie/crawler

guzzlehttp/psr7은 spatie 패키지가 후드 아래에서 Guzzle 약속을 사용하여 여러 URL을 동시에 크롤링하기 때문에 설치됩니다.

코딩 시간!

시작하기 전에 \Spatie\Crawler\CrawlObservers\CrawlObserver 추상 클래스를 확장하는 클래스를 만들어야 합니다. 크롤링 단계에 연결하고 CustomCrawlerObserver 클래스에서 http 응답을 조작할 수 있습니다.




그러면 이제 아래 구문을 사용하여 크롤러 자체를 준비하고 시작할 수 있습니다.




<script id="gist-ltag"src="https://gist.github.com/anlisha-maharjan/b2a67fcb968e7c881d68308c82aedf19.js"/>


26행에서 이전에 생성한 CustomCrawlerObserver 클래스를 설정했습니다. 그리고 32행에서 웹사이트를 크롤링하도록 설정했습니다.


또한 27행에서 setCrawlProfile -function을 사용하여 내부 링크만 따르도록 정의하고 있습니다. 다른 옵션을 확인하십시오here.

setDelayBetweenRequests(100) 보이시나요? 크롤러는 모든 요청 사이에 100밀리초를 일시중지합니다.



바로


빠르고 쉽게! spatie/crawler 최대 크롤링 깊이, 응답 크기 설정, 요청 간 지연 추가, 크롤링 링크 제한, 구문 분석할 콘텐츠 유형 제한 등 웹 스크래핑 프로세스를 단순화하는 옵션/기능을 제공합니다. 이것은 입문서였지만 이 지식을 바탕으로 수천 페이지를 크롤링할 수 있는 복잡한 웹 스크레이퍼를 만들도록 선택할 수 있습니다. 따라서 더 많은 문서를 보려면 이 패키지에 액세스해야 합니다.



소스 코드!


Here’s the full source code with what we’ve done so far.



포스트Web Scraping with Laravel and spatie/crawlerAnlisha Maharjan에 처음 등장했습니다.

좋은 웹페이지 즐겨찾기