새로운 크롤러를 위한 필독서: Scrapy 시작 가이드

王林
풀어 주다: 2023-06-22 09:05:51
원래의
1720명이 탐색했습니다.

데이터 수집 측면에서 웹 크롤러는 필수적인 도구가 되었습니다. 그러나 웹 스크래핑 기술을 처음 배우고 익히는 사람들에게는 올바른 도구와 프레임워크를 선택하는 것이 혼란스러울 수 있습니다. 많은 웹 크롤링 도구 중에서 Scrapy는 매우 인기 있는 도구입니다. Scrapy는 데이터 처리 및 추출에 대한 유연한 접근 방식을 제공하는 오픈 소스 Python 프레임워크입니다.

이 글에서는 Scrapy의 기본 사항을 소개하고 Scrapy에서 간단한 웹 크롤러를 구축하는 방법을 설명하겠습니다.

1. Scrapy 시작 가이드

  1. Scrapy 설치

시작하기 전에 먼저 Scrapy를 설치해야 합니다. Scrapy 설치는 매우 간단합니다. 명령줄에서 다음 명령을 실행하면 됩니다.

pip install scrapy
로그인 후 복사
  1. Scrapy 프로젝트 만들기

Scrapy 프로젝트를 만들 때 다음 명령을 사용할 수 있습니다.

scrapy startproject <project_name>
로그인 후 복사

이렇게 하면 Scrapy가 생성됩니다. 현재 디렉터리에 이라는 폴더를 만들고 여기에 필요한 파일과 폴더를 만듭니다.

  1. Create Spider

Scrapy에서 Spider는 데이터를 크롤링하는 데 사용하는 주요 구성 요소입니다. Spider는 URL 요청을 시작하는 방법, 링크를 따라가는 방법 및 페이지를 구문 분석하는 방법을 정의합니다. Scrapy에서는 다음 명령을 사용하여 Spider를 생성할 수 있습니다:

scrapy genspider <spider_name> <domain_name>
로그인 후 복사

그러면 프로젝트에 새 Spider가 생성되어 spiders 디렉터리에 저장됩니다. Spider를 편집하여 필요한 요청 및 구문 분석 방법을 정의할 수 있습니다.

  1. 크롤링 웹사이트 구성

크롤링 웹사이트를 구성하는 것은 매우 중요합니다. Spider 파일에서 크롤링할 웹사이트 URL과 요청 구성 방법을 정의해야 합니다. Scrapy에서는 start_requests 메소드를 작성하여 이 기능을 구현할 수 있습니다. 이 메소드는 스파이더가 시작되어 특정 URL에서 요청을 보낼 때 호출됩니다.

  1. 페이지 구문 분석

Scrapy에서는 웹 페이지 구문 분석이 가장 중요한 단계입니다. XPath 또는 CSS 선택기를 사용하여 페이지를 구문 분석하여 필요한 데이터를 추출할 수 있습니다. Spider 코드에서는 구문 분석 메소드를 작성하고 위의 도구를 사용하여 페이지를 구문 분석할 수 있습니다.

  1. 데이터 저장

마지막으로 추출된 데이터를 데이터베이스나 파일에 저장해야 합니다. Scrapy에서는 파이프라인을 사용하여 이 작업을 수행할 수 있습니다. 파이프라인은 데이터 처리를 위한 메커니즘으로, 데이터 정리, 필터링, 변환, 저장, 출력 등을 위한 특정 방법을 정의합니다.

2. 간단한 예

이제 간단한 Spider를 작성하고 Scrapy를 사용하여 Top 250 Douban 영화의 데이터를 가져옵니다. 먼저 명령줄에서 다음 명령을 사용하여 새 프로젝트를 만듭니다.

scrapy startproject tutorial
로그인 후 복사

튜토리얼 폴더로 이동하여 douban_spider라는 이름의 Spider를 만듭니다.

scrapy genspider douban_spider movie.douban.com
로그인 후 복사

다음으로 페이지를 요청하고 웹 페이지를 구문 분석하도록 스파이더를 구성해야 합니다. Spider 파일에 다음 코드를 추가합니다.

import scrapy

class DoubanSpider(scrapy.Spider):
    name = "douban"
    allowed_domains = ["movie.douban.com"]
    start_urls = [
        "https://movie.douban.com/top250"
    ]

    def parse(self, response):
        for sel in response.xpath('//div[@class="info"]'):
            title = sel.xpath('div[@class="hd"]/a/span/text()').extract()
            yield {'title': title}
로그인 후 복사

위 코드에서는 먼저 Spider의 이름과 크롤링된 웹사이트의 도메인 이름을 정의합니다. 다음으로, 크롤링하려는 URL을 정의하고 페이지를 구문 분석하고 필요한 데이터를 추출하는 구문 분석 메서드를 작성했습니다.

클래스 속성이 "info"인 각 요소에 대해 XPath를 사용하여 영화 제목이 포함된 요소를 추출하고 Yield 키워드를 사용하여 이러한 요소를 반환합니다.

마지막으로 추출된 데이터를 저장해야 합니다. 추출된 데이터를 처리하고 저장하기 위해 새로운 파이프라인을 생성할 수 있습니다. 다음은 추출된 데이터를 JSON 파일에 저장하는 간단한 파이프라인입니다.

import json

class TutorialPipeline(object):

    def __init__(self):
        self.file = open('douban_top250.json', 'w')

    def process_item(self, item, spider):
        line = json.dumps(dict(item)) + "
"
        self.file.write(line)
        return item

    def spider_closed(self, spider):
        self.file.close()
로그인 후 복사

마지막으로 settings.py에서 파이프라인을 구성해야 합니다. ITEM_PIPELINES에 다음 코드를 추가하기만 하면 됩니다.

ITEM_PIPELINES = {
    'tutorial.pipelines.TutorialPipeline': 100,
}
로그인 후 복사

이제 간단한 Scrapy Spider를 작성했으며 다음 명령을 실행하여 시작할 수 있습니다.

scrapy crawl douban
로그인 후 복사

명령을 실행한 후 Scrapy는 페이지 요청을 시작하고 데이터를 구문 분석합니다. 추출된 데이터는 JSON 파일로 저장됩니다.

3. 결론

Scrapy는 매우 유연하고 강력한 웹 크롤러 프레임워크입니다. Scrapy를 사용하면 효율적이고 확장 가능한 웹 크롤러를 쉽게 구축하고 필요한 데이터를 추출할 수 있습니다. 이 글에서는 웹 크롤러를 배우는 초보자에게 도움이 되기를 바라며 Scrapy의 기본 사항을 소개하고 간단한 예를 제공합니다.

위 내용은 새로운 크롤러를 위한 필독서: Scrapy 시작 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿