Scrapy 경 동 상품 캡 처,콩짜개 영화 및 코드 공유

4433 단어 Scrapy
1.scrapy 기본 이해
Scrapy 는 사이트 데 이 터 를 기어 올 라 구조 적 데 이 터 를 추출 하기 위해 작 성 된 응용 프레임 워 크 입 니 다.데이터 발굴,정보 처리,역사 데이터 저장 등 일련의 프로그램 에 응용 할 수 있다.처음에는 페이지 캡 처(더 정확히 말 하면 네트워크 캡 처)를 위해 디자인 되 었 으 며 API 가 되 돌아 오 는 데이터(예 를 들 어 웹 서비스)나 통용 되 는 네트워크 파충류 도 얻 을 수 있 습 니 다.
Scrapy 도 높 은 등급 의 파충류 구 조 를 실현 하 는 데 도움 을 줄 수 있다.예 를 들 어 기어 오 를 때의 사이트 인증,내용 의 분석 처리,중복 캡 처,분포 식 기어 오 르 기 등 복잡 한 일 을 할 수 있다.
Scrapy 는 주로 다음 구성 요 소 를 포함 합 니 다.
  • 엔진(Scrapy):전체 시스템 의 데이터 흐름 처리,트리거 트 랜 잭 션(프레임 핵심)
  • 스케줄 러(Scheduler):엔진 이 보 낸 요청 을 받 아들 여 대기 열 에 눌 러 넣 고 엔진 이 다시 요청 할 때 되 돌려 줍 니 다.URL(웹 페이지 의 주 소 를 캡 처 하거나 링크 라 고 함)의 우선 대기 열 이 라 고 상상 할 수 있 습 니 다.다음 에 잡 을 주소 가 무엇 인지 결정 하고 중복 되 는 주소
  • 를 제거 합 니 다.
  • 다운로드 기(Downloader):웹 콘 텐 츠 를 다운로드 하고 거미 에 게 웹 콘 텐 츠 를 되 돌려 줍 니 다(Scrapy 다운로드 기 는 twisted 라 는 효율 적 인 비동기 모델 에 세 워 진 것 입 니 다)
  • 파충류(Spiders):파충 류 는 주로 일 을 하 는데 특정한 홈 페이지 에서 자신 이 필요 로 하 는 정 보 를 추출 하 는 데 사용 된다.즉,실체(Item)이다.사용자 도 그 중에서 링크 를 추출 하여 Scrapy 가 다음 페이지 를 계속 캡 처 하도록 할 수 있 습 니 다
  • 프로젝트 파이프(Pipeline):파충류 가 웹 페이지 에서 추출 한 실 체 를 처리 하 는 것 을 책임 집 니 다.주요 한 기능 은 실 체 를 지구 화하 고 실체의 유효성 을 검증 하 며 필요 하지 않 은 정 보 를 제거 하 는 것 입 니 다.페이지 가 파충류 에 의 해 분 석 된 후 프로젝트 파이프 로 전송 되 고 몇 가지 특정한 순 서 를 거 쳐 데 이 터 를 처리 합 니 다.
  • 다운로드 기 미들웨어(Downloader Middlewares):Scrapy 엔진 과 다운로드 기 사이 에 있 는 프레임 워 크 는 주로 Scrapy 엔진 과 다운로드 기 간 의 요청 과 응답 을 처리 합 니 다.
  • 파충류 중간물(Spider Middlewares):Scrapy 엔진 과 파충류 사이 에 있 는 프레임 워 크 로 거미 의 응답 입력 과 출력 요청 을 처리 하 는 것 이 주요 작업 입 니 다.
  • 스케줄 러 미들웨어(Scheduler Middewares):Scrapy 엔진 과 스케줄 러 사이 에 있 는 미들웨어,Scrapy 엔진 에서 스케줄 러 요청 과 응답 을 보 냅 니 다.
  • Scrapy 실행 프로 세 스 는 다음 과 같 습 니 다.
    1.우선,엔진 은 스케줄 러 에서 링크(URL)를 꺼 내 다음 캡 처 에 사용 합 니 다.
    2.엔진 은 URL 을 요청(Request)으로 봉 하여 다운로드 기 에 전달 하고,다운로드 기 는 자원 을 다운로드 하여 응답 패키지(Response)로 봉 합 니 다.
    3.그리고 파충류 해석 응답
    4.실체(Item)를 분석 하면 실체 관 로 를 통 해 진일보 한 처 리 를 한다.
    5.링크(URL)를 분석 한 경우,URL 을 Scheduler 에 게 넘 겨 캡 처 를 기다 리 도록 합 니 다.
    2.scrapy 설치
        가상 환경 설치:
        sudo pip install virtualenv\#가상 환경 도구 설치
        virtualenv ENV\#가상 환경 디 렉 터 리 만 들 기
        source./ENV/bin/active\#가상 환경 활성화
        pip install Scrapy\#설치 성공 여 부 를 검증 합 니 다.
        pip list\#설치 검증
        다음 테스트 를 할 수 있 습 니 다:    scrapy bench3.scrapy 사용
       캡 처 하기 전에 Scrapy 프로젝트 를 새로 만들어 야 합 니 다.코드 를 저장 할 디 렉 터 리 에 들 어가 서 실행 하 십시오.          $ scrapy startproject tutorial이 명령 은 현재 디 렉 터 리 아래 에 새 디 렉 터 리 tutorial 을 만 듭 니 다.구 조 는 다음 과 같 습 니 다.
    
    |____scrapy.cfg
    |____tutorial
    | |______init__.py
    | |______init__.pyc
    | |____items.py
    | |____items.pyc
    | |____pipelines.py
    | |____settings.py
    | |____settings.pyc
    | |____spiders
    | | |______init__.py
    | | |______init__.pyc
    | | |____example.py
    | | |____example.pyc
    
     
    이 파일 들 은 주로:
    scrapy.cfg:프로젝트 프로필
    tutorial/:프로젝트 python 모듈,이후 코드 를 추가 합 니 다.
    tutorial/items.py:프로젝트 항목 파일
    tutorial/ipelines.py:프로젝트 파이프 파일
    tutorial/settings.py:프로젝트 프로필
    tutorial/spiders:spider 디 렉 터 리 설치
    3.1.항목 정의
    items 는 캡 처 한 데 이 터 를 불 러 올 용기 입 니 다.python 의 사전 과 같은 작업 방식 이지 만 정의 되 지 않 은 필드 를 채 워 맞 춤 법 오 류 를 방지 하기 위해 scrapy.item 류 를 만 들 고 scrapy.Field 의 클래스 속성 으로 정의 하여 아 이 템 을 표시 합 니 다.필요 한 item 을 모델 화 합 니 다.tutorial 디 렉 터 리 에 있 는 items.py 파일 에서 편집 합 니 다.
    3.2.Spider 작성
    Spider 는 사용자 가 작성 한 클래스 로 도 메 인(또는 도 메 인 그룹)에서 정 보 를 캡 처 하 는 데 사 용 됩 니 다.다운로드 할 URL 의 초기 목록,링크 를 추적 하 는 방법,그리고 이 웹 페이지 의 내용 을 분석 하여 items 를 추출 하 는 방법 을 정의 합 니 다.
    하나의 Spider 를 만 들 고 scrapy.Spider 기본 클래스 를 계승 하 며 세 가지 주요 하고 강제 적 인 속성 을 확인 합 니 다.
    name:파충류 의 식별 명 은 유일 해 야 합 니 다.서로 다른 파충류 에서 서로 다른 이름 을 정의 해 야 합 니 다.
    start_urls:Spider 가 시작 할 때 기어 오 르 는 url 목록 을 포함 합 니 다.따라서 첫 번 째 로 가 져 온 페이지 는 그 중 하나 가 될 것 이다.후속 URL 은 초기 URL 에서 가 져 온 데이터 에서 추출 합 니 다.우 리 는 정규 표현 식 정의 와 필 터 를 이용 하여 따라 가 야 할 링크 를 사용 할 수 있 습 니 다.
    parse():spider 의 한 방법 입 니 다.호출 될 때 모든 초기 URL 이 다운로드 가 완 료 된 후 생 성 된 Response 대상 은 이 함수 에 유일한 매개 변수 로 전 달 됩 니 다.이 방법 은 되 돌아 오 는 데이터(response data)를 분석 하고 데이터 추출(item 생 성)및 더 처리 해 야 할 URL 을 생 성 하 는 Request 대상 을 책임 집 니 다.
    이 방법 은 되 돌아 오 는 데 이 터 를 분석 하고 캡 처 한 데이터 와 일치 하 며 더 많은 URL 을 추적 합 니 다.
    /tutorial/tutorial/spiders 디 렉 터 리 에 만 들 기
      example.py
    3.3.기어 오 르 기
    프로젝트 루트 디 렉 터 리 에 가서 명령 을 실행 합 니 다.  $ scrapy crawl example전체 코드 참조:https://github.com/AlexanLee/Spider그 중에서 제목 에서 경 동과 콩잎 을 잡 는 방법 이 있 습 니 다.

    좋은 웹페이지 즐겨찾기