반응형

Spider는 웹 사이트를 통해 링크를 따라 이동하고 페이지에서 정보를 추출하는 방법을 정의하는 클래스입니다.

default spirder는 아래와 같습니다.

class scrape.spiders.Spider 에 위치하며 각각의 부분과 설명들을 밑에 첨부합니다.

name 

 spider의 이름 

allowed_domains

 spider가 크롤링할 도메인들의 목록 

start_urls 

URL의 목록이고 어디서부터 크롤링할건지, 나중 크롤링을 위한 뿌리가 된다. 

custom_settings 

spider가 동작할때 project wide configuration으로 오버라이드된다.

crawler 

이 속성은 스파이더 인스턴스가 바인딩 된 크롤러 객체에 연결되는 속성입니다. 

setting

spider의 동작을 위한 세팅들 

logger 

Python logger가 log 메세지를 보내기위해 사용됩니다. 

from_crawler

(crawler,*args,**kwargs)

spider를 만들 메소드이며 파라미터별 

- crawler => 어떤 spider객체가 바인딩 될 것인지. 

- args(list) => method _init_()에 전달된 인자들입니다.

 start_requests()

어떤 특정 URL도 명시되지않았고 스크래핑을 위해 스파이더가 열렸을 경우 scrapy는 start_requests()method를 호출합니다. 

 make_requests_from_url(url)

url을 requests로 콘버트할때 사용됨


parse(response)

response를 처리하고 처리된 데이타를 리턴하고 다음 url을 따라갑니다. 

log(message[,level,component])

 spider logger를 통해 log msg를 보내는 메소드 

closed(reason) 

 spider가 종료될 떄 호출됩니다. 


Spider Arguments

스파이더 인수는 시작 URL을 지정하는 데 사용되며 다음과 같이 -a 옵션과 함께 크롤링 명령을 사용하여 전달됩니다.

scrape crawl first_scrapy -a group = accessories

위 코드는 스파이더가 어떻게 인자를 받는지 보여줍니다.

Generic Spider

Generic Spider를 사용하여 spider를 sub class로 분류할 수 있습니다.

그리고 그들의 목적은 특정 규칙에 기반한 웹사이트의 모든 링크를 타는게 목적입니다.

다음 스파이더에서 사용되는 예제의 경우 다음 필드가있는 프로젝트가 있다고 가정 해 봅시다.




반응형
by 발전소장 에르 :) 2017. 10. 17. 14:59
반응형

Scrapy 명령 도구는 다양한 인수 옵션 그룹이있는 다양한 객체에 대한 명령이 포함되어 있고 주로 'Scrapy tool'이라고도하는 Scrapy 제어하는 사용됩니다.


========================

scrapy.cfg                - Deploy the configuration file

project_name/             - Name of the project

   _init_.py

   items.py               - It is project's items file

   pipelines.py           - It is project's pipelines file

   settings.py            - It is project's settings file

   spiders                - It is the spiders directory

      _init_.py

      spider_name.py

      . . .

============================  


위와 같은 구조를 가지고 있습니다.

scrapy.cfg 파일이 프로젝트 이름과 프로젝트 세팅을 담고있는 프로젝트 root 디렉토리입니다.


예를 들자면,


[settings] 

default = [name of the project].settings  


[deploy] 

#url = http://localhost:6800/ 

project = [name of the project] 

==================================


이렇게 생겼습니다.


Scrapy Tool 사용법


scrapy tool 밑에 보이는 커맨드와 사용법을 제공하고있습니다.


=============================================================

Scrapy X.Y  - no active project 

Usage: 

   scrapy  [options] [arguments] 

Available commands: 

   crawl      It puts spider (handle the URL) to work for crawling data 

   fetch      It fetches the response from the given URL

=============================================================


프로젝트 생성


scrapy startproject project_name으로 간단히 프로젝트를 생성할 있습니다.


앞으로 헷갈리지않도록 scrapy  전용 폴더를 만들어줍시다.

그리고는

scrape start project project_name 명령어를 통해 

본견적으로 시작해봅시다.

친절하게 아래에 명령어를 통해 스파이더를 시작할 수 있음! 이라고 해주네요

cd project_name

scrape gen spider example example.com

저는  logan이라고 이름을 지었습니다.

tree해보시면 전반적 구조가 보이실거에요.


중간에 궁금하신게 있으시다면 

scrape -h 명령어를 통해 확인가능합니다.


반응형
by 발전소장 에르 :) 2017. 10. 17. 12:16
| 1 |