Scrapy 프레임 워 크 에 사용 되 는 기본 지식

2893 단어 scrapy프레임
scrapy 는 Twisted 기반 비동기 처리 프레임 워 크 로 확장 성 이 강하 다.장점 은 여기 서 더 이상 일일이 군말 하지 않 는 다.
스 크 래 피 를 이해 할 수 있 도록 개념 적 지식 을 소개 한다.
데이터 흐름
이 프레임 워 크 를 익히 려 면 데이터 의 흐름 이 어떤 과정 인지 알 아야 한다.총 결 은 다음 과 같다.
1.엔진 이 먼저 사 이 트 를 열 고 url 을 요청 합 니 다.
2.엔진 은 스케줄 러 를 통 해 url 을 Request 형식 으로 스케줄 링 합 니 다.
3.엔진 이 다음 url 을 요청 합 니 다.
4.스케줄 러 는 url 을 Downloader Middlewares 를 통 해 엔진 에 보 냅 니 다.
5.Downloader 생 성 response,Downloader Middlewares 를 통 해 엔진 에 보 내기
6.엔진 수신 Response 는 spider Middleware 를 통 해 spider 처리 에 보 냅 니 다.
7.spider 처리 response
8.엔진 은 spider 가 처리 한 아 이 템 을 ItemPipeline 에 주 고 새로운 Request 를 스케줄 러 에 줍 니 다.
2.각 구조의 역할
DownloderMiddleware
스케줄 러 는 대기 열 에서 Request 를 꺼 내 다운 로드 를 실행 합 니 다.이 과정 은 다운 로드 를 통 해 Middleware 처 리 됩 니 다.
역할 의 위 치 는 두 가지 가 있다.
  • 스케줄 러 가 Request 를 Downloader 에 보 내기 전에
  • 다운로드 후 Response 를 생 성하 여 spider 에 보 내기 전에
  • 핵심 방법 은 세 가지 가 있다.
    process_request(request,spider)
    Request 가 Downloader 에 도착 하기 전에 호출 됩 니 다.
    매개 변수 소개:
  •          request:Request 대상,처 리 된 Request.
  •          spider:spider 대상,위 에서 처 리 된 Request 에 대응 하 는 spider.
  • 반환 값:
    1.Request 를 Response 로 실행 할 때 까지 다른None 방법 으로 되 돌려 줍 니 다.
    2.process_request()대상 을 되 돌려 주 고 낮은 우선 순위Responseprocess_request()는 호출 되 지 않 습 니 다.
    3.반환process_exception대상,낮은 우선 순위request의 집행 정지,새로운process_request()로 돌아 갑 니 다.
    process_response(request,response,spider)
    역할 위치:
  • Downloader 에서 Request 를 실행 하면 대응 하 는 Reponse 를 얻 을 수 있 습 니 다.scrapy 엔진 은 Response 를 spider 에 보 내 분석 하고 보 내기 전에 이 방법 으로 Response 를 처리 합 니 다.
  • 반환 값 의 경우:
    1.낮은 우선 순위Request로 되 돌아 가 호출 되 지 않 습 니 다.
    2.Request낮은 우선 순위process_respons()로 돌아 가 계속 호출 합 니 다.
    process_exception(request,exception,spider)
    이 함 수 는 주로 이상 을 처리 하 는 데 쓰 인 다.
    spiderMiddleware
    역할 위치:
  • Downloader 가 응답 을 생 성하 면 spider 에 보 냅 니 다.
  • 발송 전에 spider Middleware 처 리 를 거 칩 니 다.
  • 핵심 방법:
    process_soider_input(response,spider)
    반환 값:
    1.복귀 없 음
     Response 를 계속 처리 하고 모든response을 호출 하 며 spider 처 리 를 알 고 있 습 니 다.
    2.이상 탈출
    Requestprocess_respons()방법 을 직접 호출 하여spiderMiddleware처리 합 니 다.
    process_spider_output(response,result,spider)
    spider 가 Response 를 처리 하여 결 과 를 되 돌려 줄 때 호출 됩 니 다.
    process_spider_exception(response,exception,spider)
    반환 값:none
    response 를 계속 처리 하고 교체 가능 한 대상 을 되 돌려 줍 니 다.errback()방법 이 호출 되 었 습 니 다.
    process_start_request(start_requests,spider)process_spider_output()시 작 된process_spider_output()을 매개 변수 로 호출 되 었 으 며,되 돌아 와 야 합 니 다spider.
    총결산
    이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.더 많은 내용 을 알 고 싶다 면 아래 링크 를 보 세 요.

    좋은 웹페이지 즐겨찾기