본문 바로가기
IT 인터넷

파이썬 Scrapy를 이용한 크롤링

by 곰달달 2023. 3. 24.

 

파이썬의 Scrapy 라이브러리를 사용하여 웹 사이트 크롤링하는 방법을 간단히 정리해 두었다.

 

Scrapy는 파이썬으로 작성된 웹 크롤링 프레임워크로, 웹 사이트에서 데이터를 추출하는 데 사용된다.

 

Scrapy는 크롤링, 스크레이핑, 크롤링 규칙을 쉽게 작성할 수 있는 풍부한 기능을 제공한다. 이 외에도 Scrapy는 데이터 수집, 처리 및 저장을 위한 다양한 도구와 라이브러리를 포함하고 있다.

 

Scrapy 설치하기

 

Scrapy를 설치하려면 터미널 또는 명령 프롬프트에서 다음 명령어를 실행합니다.

 

pip install scrapy

 

Scrapy는 Python 2.7 및 Python 3.4 이상을 지원합니다. Scrapy를 설치할 때 의존성 패키지도 함께 설치됩니다.

 

Scrapy로 크롤링하기

 

Scrapy를 사용하여 크롤링을 시작하려면 먼저 Scrapy 프로젝트를 생성해야 합니다. Scrapy 프로젝트는 Scrapy 프레임워크를 사용하여 데이터를 추출하는 데 필요한 구성 요소를 모두 포함하고 있습니다.

 

scrapy startproject {프로젝트 이름}

 

위 명령어를 실행하면 Scrapy 프로젝트 디렉토리가 생성됩니다. 디렉토리 내부에는 프로젝트를 구성하는 파일과 폴더가 포함되어 있습니다.

 

Scrapy 프로젝트를 생성한 후, 크롤링할 웹 사이트의 URL을 정의하고, 추출할 데이터의 위치를 지정합니다. Scrapy는 spider라는 개념을 사용하여 웹 사이트에서 데이터를 추출합니다.

 

import scrapy

class MySpider(scrapy.Spider):
    name = 'myspider'
    start_urls = ['<http://example.com>']

    def parse(self, response):
        for quote in response.css('div.quote'):
            yield {
                'text': quote.css('span.text::text').get(),
                'author': quote.css('span small::text').get(),
                'tags': quote.css('div.tags a.tag::text').getall(),
            }

 

위의 예제에서는 http://example.com에서 div.quote 요소의 텍스트, 작성자 및 태그 데이터를 추출합니다. 이 데이터는 JSON 형식으로 출력됩니다. Scrapy는 데이터를 추출할 때 XPath나 CSS selector를 사용할 수 있으며, 다양한 데이터 포맷을 지원합니다.

 

Scrapy를 사용하면 데이터 추출 외에도 중복 제거, 로깅, 오류 처리 및 다양한 데이터 처리 기능을 제공합니다. 또한 Scrapy는 다양한 저장소 및 데이터베이스와의 연동을 지원하여 추출한 데이터를 쉽게 저장하고 관리할 수 있습니다.

 

Scrapy는 웹 크롤링 및 스크래핑 작업에 있어서 높은 생산성과 유연성을 제공하는 강력한 도구입니다. Scrapy를 사용하면 복잡한 크롤링 작업도 쉽게 수행할 수 있으며, 데이터 추출 및 처리 작업에서 많은 시간을 절약할 수 있습니다.