반응형

크롤링/scrapy 6

scrapy(스크래피) 크롤링 실전 (csv 저장까지)

scrapy로 11번가의 베스트 상품을 크롤링 하는 예제 수집항목 : 각 카테고리별 베스트 200 상품 (메인카테고리, 서브카테고리, 제목, 가격, 판매자, 세부url) 진행순서 1. 프로젝트 만들기 >>scrapy startproject elest (프로젝트명은 영어만 가능) 2.스파이더 봇 만들기 scrapy genspider elebest www.11st.co.kr/browsing/BestSeller.tmall?method=getBestSellerMain *url은 추후 수정가능 3. elebest.py 파일 작성하기 elebest.py import scrapy from elest.items import ElestItem class ElebestSpider(scrapy.Spider): name = ..

크롤링/scrapy 2020.09.24

scrapy[스크래피] mongo db 인서트

스크래피(scrapy)로 크롤링한 정보를 몽고db에 인서트 시킬 경우 settings.py 와 pipelines.py 수정이 필요하다. 봇 네임등은 스크래피 봇 생성시 기본적으로 작성되기 때문에 MONGO_URI,MONGO_DATABASE 부분만 추가. #settings.py #기본 설정되어 있는 부분------ BOT_NAME = 'ecommerce' SPIDER_MODULES = ['ecommerce.spiders'] NEWSPIDER_MODULE = 'ecommerce.spiders' DUPEFILTER_CLASS ='scrapy.dupefilters.BaseDupeFilter' #기본 설정되어 있는 부분--------------------- #로봇 설정 부분, 막힐 경우 False로 변경 ROBO..

크롤링/scrapy 2020.09.24

[scrapy] 엑셀(csv) 필드 정렬, 순서대로 저장, 한글 깨짐 현상

scrapy로 크롤링 할 정보를 엑셀(csv)로 저장할때 필요한 경우 사용할 수 있으나 sql,몽고db등 사용시에는 불필요. 속도만 느려짐. scrapy로 크롤링 한 정보를 csv로 저장할 때 필드 정렬하는 방법 settings.py 파일에 추가 FEED_EXPORT_FIELDS=[출력순서] 예 ) FEED_EXPORT_FIELDS=["title", "price", "link"] title, price, link 등은 items.py에서 필드값으로 정의한 것임. 크롤링 페이지마다 순서대로 저장하고 싶을때 settings.py 파일 수정 CONCURRENT_REQUESTS =1 로 수정하고 주석해제 단점: 아무래도 다소 크롤링 속도가 느려짐 엑셀(csv)한글 깨짐 settings.py 파일 수정 FEED_..

크롤링/scrapy 2020.09.22

scrapy shell 접속, 크롤링

쉘 접속 scrapy shell url 예시 >> scrapy shell http://naver.com response.css("css 셀렉터").get() (제일 처음 하나) response.css("css 셀렉터").getall() (전체를 리스트로 반환) 예시 >>response.css("div.good > ul > li a").getall() 예시 >>response.css("div.good > ul > li a::text").getall() (::text 태그 제외, 텍스트만) url 주소와 같은 태그 내의 속성 response.css("div.good > ul > li a::attr(href)").getall() ->a태그 내의 링크주소 가져오기 쉘 나오기 exit 입력

크롤링/scrapy 2020.09.22

scrapy(스크래피) 프로젝트 생성방법

1. cmd 또는 아나콘다 프롬프트 등에서 프로젝트를 만들고 싶은 폴더로 이동 2. 명령 창에 scrapy startproject 폴더명 -> 폴더 생김 ex : scrapy startproject naver 3. 스파이더 만들기 명령 창에 scrapy genspider 스파이더명 url주소 ex : scrapy genspider test1 www.naver.com http를 붙일 경우 http://http://가 될 수 있기에 http는 생략 가능. 여기까지 수행하면 위와 같이 naver 폴더와 test1.py 파일이 생성된다. 참고로 test1.py의 allowed_domains은 해당 주소가 포함된 url만 크롤링 하겠다는 것으로 옵션임 (없어도 됨) 4. 스파이더 실행하기 import scrapy..

크롤링/scrapy 2020.09.18
반응형