Python 파충류 기초 의 첫 번 째 사용 scrapy 파충류 실례

5917 단어 Pythonscrapy
프로젝트 요구 사항
파충류 초보 자 들 이 파충류 기술 을 훈련 시 키 는 사이트http://quotes.toscrape.com에서 명언 경 구 를 얻 었 다.
프로젝트 생 성
기어 오 르 기 전에 새 Scrapy 프로젝트 를 만들어 야 합 니 다.코드 를 저장 하려 는 디 렉 터 리 에 들 어가 다음 명령 을 실행 하 십시오.

(base) λ scrapy startproject quotes
New scrapy project 'quotes ', using template directory 'd: \anaconda3\lib\site-packages\scrapy\temp1ates\project ', created in:
    D:\XXX
You can start your first spider with :
    cd quotes
    scrapy genspider example example. com
우선 새 파충류 프로젝트 디 렉 터 리,즉/quotes 디 렉 터 리 로 전환 합 니 다.그리고 파충류 파일 을 만 드 는 명령 을 실행 합 니 다:

D:\XXX(master)
(base) λ cd quotes\
  
D:\XXX\quotes (master)
(base) λ scrapy genspider quotes quotes.com
cannot create a spider with the same name as your project
 
D :\XXX\quotes (master)
(base) λ scrapy genspider quote quotes.com
created spider 'quote' using template 'basic' in module:quotes.spiders.quote
이 명령 은 다음 내용 을 포함 하 는 quotes 디 렉 터 리 를 만 듭 니 다.

robots.txt
robots 프로 토 콜 은 robots.txt(통일 소문 자)라 고도 부 릅 니 다.웹 사이트 루트 디 렉 터 리 에 저 장 된 ASCII 인 코딩 텍스트 파일 입 니 다.인터넷 검색엔진 의 인터넷 거미 에 게 이 사이트 의 어떤 내용 이 검색엔진 의 파충류 에 의 해 가 져 오지 말 아야 하 는 지,어떤 것 이 파충류 에 의 해 가 져 갈 수 있 는 지 알려 줍 니 다.
robots 프로 토 콜 은 규범 이 아니 라 약 속 된 것 입 니 다.

#filename : settings.py
#obey robots.txt rules
ROBOTSTXT__OBEY = False
분석 페이지
파충류 프로그램 을 만 들 기 전에 먼저 기어 오 르 는 페이지 를 분석 해 야 합 니 다.주류 브 라 우 저 에는 페이지 를 분석 하 는 도구 나 플러그 인 이 있 습 니 다.크롬 브 라 우 저의 개발 자 도구(Tools→Developer tools)를 사용 하여 페이지 를 분석 합 니 다.
데이터 정보
Chrome 브 라 우 저 에서 페이지http://lquotes.toscrape.com를 열 고'Elements'를 선택 하여 HTML 코드 를 봅 니 다.
모든 라벨 이 감 싸 져 있 는 것 을 볼 수 있다.

거미
페이지 를 분석 한 후 파충 류 를 작성 합 니 다.Scrapy 에서 파충 류 를 만 듭 니 다.scrapy.Spider 에서 코드 를 만 듭 니 다.Spider 는 사용자 가 하나의 사이트(또는 일부 사이트)에서 데 이 터 를 가 져 오 는 데 사용 하 는 클래스 입 니 다.
다운로드 에 사용 되 는 초기 URL,웹 페이지 의 링크 를 따라 가 는 방법,페이지 의 내용 을 분석 하고 아 이 템 을 만 드 는 방법 을 포함 합 니 다.
Spider 를 만 들 기 위해 서 는 scrapy.Spider 클래스 를 계승 하고 다음 세 가지 속성 을 정의 해 야 합 니 다.
  • name:Spider 를 구별 하 는 데 사 용 됩 니 다.이 이름 은 유일 해 야 합 니 다.-네,다른 Spider 에 같은 이름 을 설정 해 서 는 안 됩 니 다.
  • start _urls:Spider 가 시작 할 때 기어 오 르 는 ur 목록 을 포함 합 니 다.따라서 첫 번 째 로 가 져 온 페이지 는 그 중 하나 가 될 것 이다.다음 URL 은 초기 URL 에서 가 져 온 데이터 에서 추출 합 니 다.
  • parse():spider 의 한 가지 방법 입 니 다.호출 될 때 모든 초기 URL 이 다운로드 가 완 료 된 후 생 성 된 Response 대상 은 이 함수 에 유일한 매개 변수 로 전 달 됩 니 다.이 방법 은 되 돌아 오 는 데이터(response data)를 분석 하고 데이터 추출(item 생 성)및 더 처리 해 야 할 URL 을 생 성 하 는 Request 대상 을 책임 집 니 다.
  • 
    import scrapy
     
    class QuoteSpi der(scrapy . Spider):
        name ='quote'
        allowed_ domains = [' quotes. com ']
        start_ urls = ['http://quotes . toscrape . com/']
        
        def parse(self, response) :
            pass
    
    다음은 quote 의 실현 에 대해 간단 한 설명 을 하 겠 습 니 다.
  • scrapy.spider:파충류 의 기본 클래스 입 니 다.다른 spider 는 이 클래스(Scrapy 가 가지 고 있 는 다른 spider 와 자신 이 만 든 spider 포함)를 계승 해 야 합 니 다.
  • name 은 파충류 의 이름 으로 genspider 에서 지정 한 것 입 니 다.
  • allowed_domains 는 파충류 가 잡 을 수 있 는 도 메 인 이름 입 니 다.파충 류 는 이 도 메 인 이름 에서 만 웹 페이지 를 잡 을 수 있 고 쓰 지 않 아 도 됩 니 다.
  • start_ur1s 는 Scrapy 가 캡 처 한 사이트 로 교체 가능 한 유형 입 니 다.물론 여러 개의 웹 페이지 가 있 으 면 목록 에 여러 개의 웹 주 소 를 기록 하면 됩 니 다.목록 유도 식 형식 을 자주 사용 합 니 다.
  • parse 는 리 셋 함수 라 고 하 는데 이 방법 중의 response 는 start 입 니 다.urls 사이트 에서 요청 을 보 낸 후 받 은 응답 입 니 다.물론 다른 함 수 를 지정 하여 응답 을 받 을 수도 있다.한 페이지 해석 함 수 는 보통 다음 과 같은 두 가지 작업 을 완성 해 야 합 니 다.
  • 1.페이지 의 데이터 추출(re,XPath,CSS 선택 기)
    2.페이지 의 링크 를 추출 하고 링크 페이지 에 대한 다운로드 요청 이 발생 합 니 다.
    페이지 분석 함 수 는 보통 생 성기 함수 로 이 루어 집 니 다.페이지 에서 추출 한 데이터 와 링크 페이지 에 대한 다운로드 요청 은 모두 yield 문 구 를 Scrapy 엔진 에 제출 합 니 다.
    분석 데이터
    
    import scrapy
     
    def parse(se1f,response) :
        quotes = response.css('.quote ')
        for quote in quotes:
            text = quote.css( '.text: :text ' ).extract_first()
            auth = quote.css( '.author : :text ' ).extract_first()
            tages = quote.css('.tags a: :text' ).extract()
            yield dict(text=text,auth=auth,tages=tages)
    
    중점:
  • response.css(css 문법 을 직접 사용 하면 응답 중의 데 이 터 를 추출 할 수 있 습 니 다.
  • start_ur1s 에 여러 개의 주 소 를 쓸 수 있 습 니 다.목록 형식 으로 나 누 면 됩 니 다.
  • extract()는 css 대상 의 데 이 터 를 추출 하고 추출 한 후에 목록 입 니 다.그렇지 않 으 면 대상 입 니 다.그리고
  • extract_first()는 첫 번 째 추출
  • 파충 류 를 운행 하 다
    /quotes 디 렉 터 리 에서 scrapycrawlquotes 를 실행 하면 파충류 프로젝트 를 실행 할 수 있 습 니 다.
    파충 류 를 운행 한 후에 무슨 일이 일 어 났 습 니까?
    Scrapy 는 Spider 의 starturl 속성 에 있 는 모든 URL 은 scrapy.Request 대상 을 만 들 고 parse 방법 을 리 셋 함수(callback)로 Request 에 할당 합 니 다.
    Request 대상 은 스케줄 링 을 통 해 scrapy.http.Response 대상 을 생 성하 고 spider parse()방법 으로 처리 합 니 다.
    코드 가 완 료 된 후,파충 류 를 실행 하여 데 이 터 를 추출 하고,셸 에서 scrapy crawl파충류'quote'를 실행 하 라 고 명령 하고,기어 오 른 데 이 터 를 csv 파일 에 저장 합 니 다.
    
    (base) λ scrapy craw1 quote -o quotes.csv
    2021-06-19 20:48:44 [scrapy.utils.log] INF0: Scrapy 1.8.0 started (bot: quotes)
    파충류 가 실 행 될 때 까지 기다 리 면 현재 디 렉 터 리 에 quotes.csv 파일 을 생 성 합 니 다.그 안에 있 는 데 이 터 는 csv 형식 으로 저 장 됩 니 다.
    -o 다양한 형식 으로 저장 할 수 있 습 니 다.저장 방식 도 매우 간단 합 니 다.파일 의 접미사 이름 만 주면 됩 니 다.(csv,json,pickle 등)
    파 이 썬 파충류 기반 의 첫 번 째 스 크 래 피 파충류 인 스 턴 스 사용 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 스 크 래 피 프레임 워 크 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기