본문 바로가기

전체 글79

00. 시간복잡도 시간복잡도 알고리즘의 시간복잡도는 입력을 나타내는 문자열 길이의 함수로서 작동하는 알고리즘을 취해 시간을 정량화하는 것. 알고리즘의 최적화를 위해 필요하다. 알고리즘의 시간복잡도는 주로 빅-오 표기법을 사용하여 나타낸다. 빅-오 표기법은 계수와 낮은 차수의 항을 제외시켜 간소화한다. 상수 시간(Constant time) 알고리즘이 입력 크기에 구애받지 않는 값에 의해서 한정된다면, 상수 시간이라고 말 할 수 있다. 예를 들어, 단 하나의 연산이 어떤 배열에서의 요소 위치를 알아내는 것을 수행한다고 할 때, 이 요소의 접근하는 것은 상수 시간이 걸린다. 선형 시간(Linear time) T(n) = O(n) 수행시간이 입력 크기에 따라 선형적으로 증가한다. 예를 들어, 리스트의 모든 요소를 더하는 알고리즘.. 2020. 5. 8.
[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] 09. Exports URL : https://docs.scrapy.org/en/latest/topics/feed-exports.html# 1. 출력 형식 JSON, JSON Lines(Java Script Object Notation) CSV(쉼표로 구분한 텍스트) XML(마크업 언어) Pickle(python 자료형을 저장) Marshal(바이너리 형식) 2. 저장 위치 Local File System(My Pc) FTP - (server) S3 - (AWS) Amazon 3. 저장 방법 (1) 기본 콘솔 cmd : (--output, -o), (--output-format, -t) 옵션 설정 --set=FEED_EXPORT_INDENT = 2 (2) Settings.py 파일 사용 자동으로 저장(파일명, 형시, 위치) .. 2020. 4. 8.
[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] 07. Selectors(css, xpath) url : https://www.w3scrhools.com content 1. Css Selector 2. xpath Selector 3 . 크롤링 실습 4. 참고 사이트 * Xpath 도움 사이트 https://docs.scrapy.org/en/latest/topics/selectors.html#working-with-relative-xpaths http://www.nextree.co.kr/p6278/ * css 선택자 도움 사이트 https://docs.scrapy.org/en/latest/topics/selectors.html#extensions-to-css-selectors 들어가기 전에... 타겟 데이터는 크롬 개발자 도구 사용 선택자 연습 팁 : scrapy shell 에서 테스트(효율성) s.. 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.