Scrapy 자습서 : Scrapy를 사용하여 웹 크롤러를 만드는 방법?



이 Scrapy Tutorial 기사에서는 다양한 데이터 추출 기술과 데이터베이스에 데이터를 저장하는 방법으로 웹 크롤러를 만드는 방법을 배웁니다.

웹 스크래핑은 웹 페이지에서 데이터를 수집하는 효과적인 방법입니다. . 다양한 도서관 웹 스크래핑을위한 선물 , 데이터 과학자의 작업이 최적화됩니다. Scrapy는 데이터 추출, 처리 및 저장에 사용되는 강력한 웹 프레임 워크입니다. 이 스크래피 자습서에서 웹 크롤러를 만드는 방법을 배우고이 블로그에서 다루는 주제는 다음과 같습니다.

Scrapy는 무엇입니까?

Scrapy는 Python으로 작성된 무료 오픈 소스 웹 크롤링 프레임 워크입니다. 원래 수행하도록 설계되었습니다. 이지만 API를 사용하여 데이터를 추출하는 데 사용할 수도 있습니다. Scrapinghub ltd에서 관리합니다.





Scrapy는 웹 페이지를 다운로드하고 데이터를 처리 및 저장하는 데있어 완전한 패키지입니다. .

셀레늄 웹 드라이버에서 팝업을 처리하는 방법

웹 사이트를 스크래핑하는 여러 방법으로 웹 스크래핑에 관해서는 강국과 같습니다. Scrapy는 더 큰 작업을 쉽게 처리하여 여러 페이지 또는 URL 그룹을 1 분 이내에 스크랩합니다. 동시성을 달성하기 위해 비동기 적으로 작동하는 트위스터를 사용합니다.



일반적인 크롤러와 딥 크롤러를 만들 수있는 스파이더 계약을 제공합니다. Scrapy는 또한 데이터의 값 교체 등과 같은 다양한 작업을 수행 할 수있는 스파이더에서 함수를 생성하는 항목 파이프 라인을 제공합니다.

긁힌 아키텍처-긁힌 자습서 -edureka

웹 크롤러는 무엇입니까?

웹 크롤러는 웹에서 문서를 자동으로 검색하는 프로그램입니다. 주로 자동화 된 브라우징을위한 반복적 인 작업을 위해 프로그래밍됩니다.

어떻게 작동합니까?



웹 크롤러는 사서와 매우 유사합니다. 웹에서 정보를 찾고 정보를 분류 한 다음 크롤링 된 정보에 대한 정보를 색인화하고 카탈로그 화하여 그에 따라 검색 및 저장합니다.

크롤러가 수행 할 작업은 미리 생성 된 다음 크롤러가 인덱스를 생성하는 모든 작업을 자동으로 수행합니다. 이러한 색인은 출력 소프트웨어에서 액세스 할 수 있습니다.

웹 크롤러를 사용할 수있는 다양한 애플리케이션을 살펴 보겠습니다.

  • 가격 비교 포털은 웹 크롤러를 사용하여 다양한 플랫폼에서 가격을 비교하기 위해 특정 제품 세부 정보를 검색합니다.

  • 웹 크롤러는 정보 검색을위한 데이터 마이닝 분야에서 매우 중요한 역할을합니다.

  • 데이터 분석 도구는 웹 크롤러를 사용하여 페이지보기, 인바운드 및 아웃 바운드 링크에 대한 데이터도 계산합니다.

  • 크롤러는 뉴스 포털과 같은 데이터를 수집하기 위해 정보 허브에도 사용됩니다.

Scrapy를 설치하는 방법?

시스템에 스크래피를 설치하려면 전용 virtualenv에 설치하는 것이 좋습니다. 설치는 파이썬의 다른 패키지와 매우 유사하게 작동합니다. 콘다 환경에서 다음 명령을 사용하여 scrapy를 설치하십시오.

conda install -c conda-forge 스크래피

pip 환경을 사용하여 스크래피를 설치할 수도 있습니다.

핍 설치 스크래피

운영 체제에 따라 몇 가지 컴파일 종속성이있을 수 있습니다. Scrapy는 순수 파이썬으로 작성되었으며 다음과 같은 몇 가지 파이썬 패키지에 의존 할 수 있습니다.

  • lxml – 효율적인 XML 및 HTML 파서입니다.

  • parcel – lxml 위에 작성된 HTML / XML 추출 라이브러리

  • W3lib – URL 및 웹 페이지 인코딩을 처리하기위한 다목적 도우미입니다.

  • twisted – 비동기 네트워킹 프레임 워크

  • 암호화 – 다양한 네트워크 수준의 보안 요구에 도움이됩니다.

첫 번째 Scrapy 프로젝트 시작

첫 번째 스크래피 프로젝트를 시작하려면 파일을 저장할 디렉토리 또는 위치로 이동하여 다음 명령을 실행하십시오.

스크래피 시작 프로젝트 프로젝트 이름

이 명령을 실행하면 해당 위치에 다음 디렉터리가 생성됩니다.

  • 프로젝트 이름 /

    • scrapy.cfg : 구성 파일을 배포합니다.

  • 프로젝트 이름 /

    • __init__.py : 프로젝트의 Python 모듈

    • items.py : 프로젝트 항목 정의 파일

    • middlewares.py : 프로젝트 미들웨어 파일

    • pipelines.py : 프로젝트 파이프 라인 파일

    • settings.py : 프로젝트 설정 파일

  • 거미 /

    • __init__.py : 나중에 스파이더를 넣을 디렉토리

첫 거미 만들기

스파이더는 웹에서 정보를 수집하기 위해 우리가 정의하고 사용하는 클래스입니다. scrapy.Spider를 하위 클래스로 만들고 초기 요청을 정의해야합니다.

스파이더에 대한 코드를 별도의 파이썬 파일에 작성하고 프로젝트의 projectname / spiders 디렉토리에 저장합니다.

quotes_spider.py

import scrapy class QuotesSpider (scrapy.Spider) : name = 'quotes'def start_request (self) : urls = [ 'http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] URL의 URL : yield scrapy.Request (url = url, callback = self.parse) def parse (self, response) : page = response.url.split ( '/') [-2 ] filename = 'quotes- % s.html'% page with open (filename, 'wb') as f : f.write (response.body) self.log ( 'saved file % s'% filename)

보시다시피 스파이더에 다양한 기능을 정의했습니다.

  • 이름 : 거미를 식별하며 프로젝트 전체에서 고유해야합니다.

  • start_requests () : 스파이더가 크롤링을 시작할 반복 가능한 요청을 반환해야합니다.

  • parse () : 각 요청과 함께 다운로드 된 응답을 처리하기 위해 호출되는 메서드입니다.

데이터 추출

지금까지 스파이더는 데이터를 추출하지 않고 전체 HTML 파일 만 저장했습니다. 스크래피 스파이더는 일반적으로 페이지에서 추출 된 데이터를 포함하는 많은 사전을 생성합니다. 콜백에서 Python의 yield 키워드를 사용하여 데이터를 추출합니다.

수입 스크래피 클래스 QuotesSpider (scrapy.Spider) : name = 'quotes'start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (self, response) : for quote in response.css ( 'div.quote') : yield { 'text': quote.css (span.text :: text '). get (),'author ': quote .css (small.author::text ') get (),'tags ': quote.css (div.tags a.tag :: text'). getall ()}

이 스파이더를 실행하면 추출 된 데이터를 로그와 함께 출력합니다.

Java에서 2 진수에서 10 진수로

데이터 저장

추출 된 데이터를 저장하는 가장 간단한 방법은 피드 내보내기를 사용하는 것입니다. 다음 명령을 사용하여 데이터를 저장하십시오.

스크래피 크롤링 따옴표 -o quotes.json

이 명령은 모든 스크랩 항목을 포함하는 quotes.json 파일을 생성합니다. JSON .

이것으로 웹 사이트를 긁어 내고 데이터를 JSON 파일로 추출하기 위해 파이썬에서 스크래피를 사용하여 웹 크롤러를 만드는 방법을 배웠던이 기사의 끝으로 이동합니다. 이 튜토리얼에서 여러분과 공유 한 모든 내용이 명확하기를 바랍니다.

'Scrapy Tutorial'에 대한이 기사가 관련이있는 경우 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사입니다.

우리는 당신의 여정의 모든 단계에서 당신을 돕고 싶어하는 학생과 전문가를 위해 설계된 커리큘럼을 마련하기 위해 여기 있습니다. . 이 과정은 Python 프로그래밍을 먼저 시작하고 다양한 Python 개념과 함께 핵심 및 고급 Python 개념을 교육하도록 설계되었습니다. 처럼

질문이있는 경우 'Scrapy Tutorial'의 댓글 섹션에있는 모든 질문을 자유롭게 물어보십시오. 저희 팀이 기꺼이 답변 해 드리겠습니다.