본문 바로가기

scrapy10

[Scrapy] 11. PipeLine(2) URL : https://www.alexa.com/topsites 참고 URL : https://docs.scrapy.org/en/latest/topics/item-pipeline.html contents 1. Pipeline 초기화 메소드 2. Item CSV 저장 3. Item Excel 저장 1. Pipeline 초기화 메소드 & CSV, Excel 저장 Pipeline 초기화 메소드를 선언하기 전에 items.py 을 설정해준다. built in function(내장함수)인 __init__()를 사용하여 초기화 한다. 엑셀과 CSV로 저장하기 위해서 workbook, worksheet, file_opener를 선언한다. pipelines.py 의 process_item 메소드에 엑셀과 csv 파일.. 2020. 4. 16.
[Scrapy] 10. PipeLine(1) URL : https://www.alexa.com/topsites 참고 URL : https://docs.scrapy.org/en/latest/topics/item-pipeline.html contents 1. Pipeline 설명 2. Pipeline 설정 및 메소드 3. Amazon Alexa 크롤링 연습 & Validation 추가 및 테스트 1. PipeLine 설명 Spider가 아이템을 크롤링 한 후에 파이프 라인으로 전송되어 구성 요소를 처리한다. (1) HTML 데이터 정리 (2) 스크랩 된 데이터 유효성 검사(항목에 특정 필드가 포함되어 있는지 확인) (3) 중복 확인 및 삭제 (4) 스크랩된 아이템을 DB 저장 2. Pipeline 설정 및 메소드 설정전에 settings.py 에서 P.. 2020. 4. 16.
[Scrapy] 09. Settings URL : https://de.globalvoices.org contents 1. settings.py - 다양한 설정 방법 2. 각 설정 항목 상세 설명 3. News 사이트 크롤링 연습 4. 기타 항목(캐시, 미들웨어) 1. settings.py - 다양한 설정 방법 Scrapy 환경설정 실행 방법 (1) 커맨드 라인 실행 -> scrapy crawl 크롤러명 -s(--set) = (2) Spider 실행시 직접 지정 custom_settings = {'DOWNLOAD_DELAY' : 3} (3) Settings.py에 지정 -> 추천 (4) 서브 명령어(신경x) (5) 글로벌 설정 : scrapy.settings.default_settings 2. 각 설정 항목 상세 설명 # -*- coding: .. 2020. 4. 10.
[Scrapy] 08. Items URL : https://www.itnews.com/ content 1. Items 사용 이유 2. IT News 사이트 크롤링 연습 3. 메인 페이지 -> 상세 페이지 크롤링 4. Item 선언 및 수집 데이터 mapping 1. Items 사용 이유 scrapy에서 제공하는 자료구조 클래스이다. Items 클래스를 정의하고 우리가 수집하고자 하는 정보들을 명시하면, Spider 상에서 스크래핑을 수행한 결과물을 파일형태로 저장할 때, items 객체를 이용해 간편하게 관리 가능하다. 장점 (1) 수집 데이터를 일관성있게 관리 가능 (2) 데이터를 Dictionary로 관리, 오타 방지 -> Directory(dir)을 확인함으로써 알 수 있다. (3) 추후 가공 및 DB 저장 용이 2. IT News.. 2020. 4. 8.
[Scrapy] 06. Scrapy Spider 활용 content 1. Multi Domain 2. spider Attribute 3. Logger 4. Response 분기 1. Multi Domain 여러 도메인에 동시에 접근 가능하게 해준다. (1) start_urls list에 url 추가. (2) create function -> yield scrapy.Request(url, self.parse) 2. spider Attribute 스파이더 종류 : CrawlSpider, XMLFeedSpider, CSVFeedSpider, SitemapSpider custom_settings : 사용자 시스템 설정(setting) start_urls : response 받을 url 설정 name : spider의 name 설정 Logger dir(self) 를.. 2020. 4. 8.
[Scrapy] 05. Shell 사용법 content 1. shell 기본 사용법 2. 명령어 사용 실습 3. 대상 데이터 수집 실습(css, xpath) 4. Fetch, View, response, request shell 기본 사용법 shell이란? 스파이더를 실행하지 않고도 스크래핑 코드를 빠르게 시도하고 디버깅 할 수 있다. 데이터 추출 코드를 테스트 하는 데 사용하지만, 일반 python 셸이므로 모든 종류의 코드를 테스트 가능하다. (1) 방법1 cmd : scrapy shell cmd : fetch('https://blog.scrapinghub.com') cmd : response (2) 방법2 cmd : scrapy shell url (3) 방법3 shell은 로컬 파일에서도 동작 가능하다. cmd : scrapy shell .. 2020. 4. 7.
[Scrapy] 03. Following links url : http://quotes.toscrape.com contents 1. 다음 링크를 재귀적으로 따라가기 2. scrapy.Request() 사용법 3. response.follow() 사용법 4. response.follow_all() 사용법 1. Following links 순서 : 해당 url에서 데이터 추출 -> 다음 링크(url)을 찾음 -> 다음 페이지에 대한 새로운 요청 생성 -> 콜백 등록 urljoin() : 링크가 상대적일 수 있으므로 사용한다. 해당 사이트에서 a::("href")의 결과는 절대 경로인 /page/6/ 이다. urljoin() function을 사용하여 http://quotes.toscrape.com/page/6/ 로 바꿔줄 수 있다. 2. response.fo.. 2020. 4. 1.
[Scrapy] 02. 데이터 추출 (get vs extract) contents 1. css(), xpath() 2. get(), getall() 3. extract_first(), extract() 1. 데이터 추출 일반적으로 BeautifulSoup, lxml 을 사용해 HTML 소스에서 데이터를 추출 scrapy 내부적으로 selector 가 존재한다. scrapy.selector 의 Selector로 전달하여 생성되지만 일반적으로 수동 구성 할 필요가 없다. 2. get(), getall() --> scrapy에서 추천한다. get() : 단일 결과를 반환한다. 일치하는 항목이 여러 개인 경우 첫번째 일치하는 내용이 반환. getall() : 모든 결과를 list로 반환. 일치하는 항목이 없으면 None을 반환한다. 3. extract_first(), extr.. 2020. 4. 1.
[Scrapy] 01. Scrapy 생성 contents 1. 새로운 scrapy project 생성 2. 스파이더를 사용하여 사이트 크롤링 & 데이터 추출 3. cmd 사용하여 스크랩 된 데이터 파일화 4. spiders 생성 및 사용 5. url : https://blog.scrapinghub.com title 가져오기 0. scrapy란? -> python으로 작성된 오픈소스 웹 크롤링 프레임워크이다. 웹 데이터를 수집하는 것을 목표로 설계. -> (참고) 프레임워크란 특정 프로그램을 개발하기 위한 여러 요소들과 메뉴얼인 룰을 제공하는 프로그램. -> 라이브러리(모듈)과의 차이점 : 자유도. 1. Create project 코드를 생성하려는 디렉토리 입력 -> cmd : scrapy startproject section01 다음과 같은 구.. 2020. 4. 1.
[Scrapy] 01. Scrapy 기본 사용법 Scrapy 란? Scrapy(스크래피) (/ˈskreɪpi/ SKRAY-pee)[2] 는 Python으로 작성된 오픈소스 웹 크롤링 프레임워크이다. 웹 데이터를 수집하는 것을 목표로 설계되었다. 또한 API를 이용하여 데이터를 추출할 수 있고, 범용 웹 크롤러로 사용될 수 있다.(위키백과) 1. 프로젝트 생성 cmd 창에서 scrapy startproject "프로젝트명" 으로 프로젝트를 생성할 수 있다. 그럼 아래와 같은 구조의 프로젝트가 생성된다. item.py: 크롤링할 데이터를 저장하는 기능을 하는 객체의 클래스를 정의하는 곳입니다. middlewares.py: scrapy의 커스텀 middleware의 기능을 정의하는 곳입니다. middleware는 다시 한 번 이야기하자면 engine에서 다.. 2020. 2. 27.