> 백엔드 개발 > 파이썬 튜토리얼 > Python 크롤러 프레임워크 Scrapy에 대한 간략한 소개

Python 크롤러 프레임워크 Scrapy에 대한 간략한 소개

不言
풀어 주다: 2018-10-19 17:04:04
앞으로
2672명이 탐색했습니다.

이 기사는 Python 크롤러 프레임워크인 Scrapy에 대한 간략한 소개를 제공합니다. 이는 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Scrapy Framework

Scrapy는 웹사이트 데이터를 크롤링하고 구조적 데이터를 추출하기 위해 순수 Python으로 작성된 애플리케이션 프레임워크입니다.

프레임워크의 힘으로 사용자는 웹 콘텐츠와 다양한 이미지를 크롤링하는 크롤러를 쉽게 구현하기 위해 몇 가지 모듈을 사용자 정의하고 개발하기만 하면 됩니다. 이는 매우 편리합니다.

Scrapy는 Twisted'twəstˈd 비동기 네트워크 프레임워크를 사용하여 네트워크 통신을 처리하므로 비동기 프레임워크를 직접 구현하지 않고도 다운로드 속도를 높일 수 있습니다. 또한 다양한 요구 사항을 유연하게 충족할 수 있는 다양한 미들웨어 인터페이스도 포함되어 있습니다.

Scrapy 아키텍처 다이어그램(녹색 선은 데이터 흐름 방향):

95625f65089e4bc98a269cfda6701597.png

Scrapy 엔진: Spider, ItemPipeline, Downloader 및 Scheduler 간의 통신, 신호, 데이터 전송 등을 담당합니다.

Scheduler(스케줄러): 엔진에서 보낸 요청 요청을 수락하고 특정 방식으로 정렬하여 대기열에 입력하고 엔진에 필요할 때 엔진에 반환하는 역할을 담당합니다.

Downloader(다운로더): Scrapy 엔진(엔진)에서 보낸 모든 요청을 다운로드하고 획득한 응답을 Scrapy 엔진(엔진)으로 반환하는 역할을 담당하며 처리를 위해 Spider로 전달됩니다.

Spider(Crawler): 담당합니다. 모든 Response를 처리하고, 그로부터 데이터를 분석 및 추출하고, Item 필드에 필요한 데이터를 얻고, 따라야 할 URL을 엔진에 제출한 후 다시 Scheduler(스케줄러)에 들어가는

Item Pipeline(파이프라인) ): 앱에서 얻은 Spider 항목을 처리하고 후처리(상세 분석, 필터링, 저장 등)하는 역할을 담당합니다.

다운로더 미들웨어: 사용자 정의 및 확장이 가능한 구성 요소라고 생각하면 됩니다. 다운로드 기능.

Spider Middlewares(스파이더 미들웨어): 확장 및 운영 엔진과 Spider 사이의 중간 통신(예: Spider로 들어오는 응답, Spider에서 나가는 Request)을 커스터마이징할 수 있는 기능적 구성 요소로 이해하면 됩니다.

b847d7fa404a404ca0a656028ada63b5.png

파이썬을 배우는 과정에서 많은 질문과 문제가 발생하면 -q-u-n을 추가하면 됩니다. 227 -435-450 소프트웨어 영상 자료가 무료로 제공됩니다

Scrapy의 작동 과정

코드가 작성된 후, 프로그램이 실행되기 시작합니다...

엔진: 안녕하세요! Spider, 어느 웹사이트에서 작업하고 있나요?

스파이더: 상사가 나한테 xxxx.com을 처리하라고 했어.

엔진: 처리해야 할 첫 번째 URL을 알려주세요.

Spider: 자, 첫 번째 URL은 xxxxxxx.com입니다.

엔진: 안녕하세요! 스케줄러님, 대기열 정렬을 도와달라는 요청이 있습니다.

스케줄러: 네, 처리 중입니다. 기다려 주세요.

엔진: 안녕하세요! 스케줄러님, 처리한 요청을 알려주세요.

스케줄러: 자, 제가 처리한 요청입니다

엔진: 안녕하세요! 다운로더님, 사장님의 다운로드 미들웨어 설정에 따라 이 요청을 다운로드할 수 있게 도와주세요

다운로더: 좋아요! 자, 여기 다운로드가 있습니다. (실패한 경우: 죄송합니다. 이 요청의 다운로드가 실패했습니다. 그런 다음 엔진은 스케줄러에게 이 요청의 다운로드가 실패했음을 알립니다. 기록하면 나중에 다운로드할 것입니다.)

엔진: 안녕하세요! Spider, 이것은 다운로드되어 사장님의 다운로드 미들웨어에 따라 처리된 것입니다. 직접 처리하시면 됩니다. (참고! 여기의 응답은 기본적으로 def pars() 함수에 의해 처리됩니다.)

Spider: (이후 처리됨) 따라야 하는 URL에 대한 데이터) 안녕하세요! 엔진, 여기에 두 가지 결과가 있습니다. 이것이 제가 후속 조치를 취해야 할 URL이고, 이것이 제가 얻은 아이템 데이터입니다.

엔진: 안녕하세요! 파이프라인 여기에 항목이 있습니다. 처리할 수 있도록 도와주세요! 스케줄러! 후속 조치가 필요한 URL입니다. 처리할 수 있도록 도와주세요. 그런 다음 상사가 필요로 하는 모든 정보를 얻을 때까지 4단계부터 루프를 시작합니다.

파이프라인`` 스케줄러: 자, 지금 해보세요!

주의! 스케줄러에 요청이 없는 경우에만 전체 프로그램이 중지됩니다(즉, Scrapy는 다운로드에 실패한 URL도 다시 다운로드합니다.)

Scrapy 크롤러를 만드는 데 필요한 4단계는 다음과 같습니다.

새 프로젝트 ( scrapy startproject xxx): 새 크롤러 프로젝트 만들기

목표 지우기(items.py 작성): 크롤링할 대상 명시

크롤러 만들기(spiders/xxspider.py): 크롤러를 만들고 크롤링 시작 webpage

콘텐츠 저장(pipelines.py): 크롤링된 콘텐츠를 저장하는 파이프라인 설계

위 내용은 Python 크롤러 프레임워크 Scrapy에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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