scrapy

Crawling

[크롤링/14]Scrapy로 Javascript 사용한 페이지 크롤링하기(Splash)

github.com/scrapy-plugins/scrapy-splash scrapy-plugins/scrapy-splash Scrapy+Splash for JavaScript integration. Contribute to scrapy-plugins/scrapy-splash development by creating an account on GitHub. github.com Scrapy는 lxml을 기반으로 만들어져 있어서 자바스크립트를 읽고 실행하지 못한다. 따라서 자바스크립트를 처리하기 위해 Selenium과 PhantomJS를 주로 사용하는데, Scrapy에서도 Splash를 사용하면 자바스크립트를 처리할 수 있다. Splash는 웹킷을 기반으로 만들들어진 헤드리스 브라우저를 사용한 서버다. Spl..

Crawling

[크롤링/13]Scrapy 오류 처리 설정

RETRY_ENABLED(기본값 True) 타임아웃 또는 HTTP 상태 코드 500 등이 발생했을 때d 자동으로 재시도할지 여부 이 설정과 관계 없이 Request.meta 속성으로 dont_rety 키 값을 True로 지정하면 해당 요청은 재시도하지 않는다. yield scrapy.Requests(url, meta={'dont_retry': True}) 잘못된 응답 또는 데이터 손실 오류는 서버 구성 오류에서 네트워크 오류, 데이터 손상에 이르기까지 여러 상황에서 발생할 수 있다. 깨진 응답이 부분적이거나 불완전한 내용을 포함 할 수 있다는 점을 고려하여 깨진 응답을 처리하는 것이 합리적 일지 결정하는 것은 사용자의 몫이다. RETRY_TIMES(기본값 2) 재시도 최대 횟수 재시도 횟수가 2라는건 처..

Crawling

[크롤링/12]Scrapy HTTP 요청/캐시 설정

캐시 설정은 같은 요청을 반복할 때 상대 서버에 가는 부하를 줄일 수 있다. HTTP 캐시 설정을 활성화하면 첫 요청을 제외하고는 대상 서버가 아닌 저장된 캐시를 활용하게 된다. 또한 응답을 캐시에서 받으면 요청 사이에 대기 시간이 들어가지 않으므로 빠른 처리가 가능하다. 1. HTTP 요청 USER_AGENT(기본값 "Scrapy/VERSION (+https://scrapy.org)") 공식 문서: docs.scrapy.org/en/latest/topics/settings.html?highlight=user_agent#user-agent Settings — Scrapy 2.4.1 documentation Here’s a list of all available Scrapy settings, in alph..

Crawling

[크롤링/11]Scrapy 병렬 처리 설정

특정한 웹 사이트를 크롤링할 때 병렬 처리를 하는 것은 민폐다. 하지만 불특정 다수의 웹 사이트를 크롤링할 때는 병렬처리로 크롤링 시간을 단축할 수 있다. Scrapy의 기본 설정은 특정 웹 사이트를 크롤링하는 것에 맞춰져있다. 즉, 불특정 다수의 웹 사이트를 크롤링 하기에는 잘 맞지않다. 하지만 Scrapy는 비동기 아키텍처로 인해 빠른 broad crawling 광범위 크롤링에 좋은 성능을 보여준다. Priority Queue 사용 중지하기 SCHEDULER_PRIORITY_QUEUE = 'scrapy.pqueues.DownloaderAwarePriorityQueue' Priority Queue는 싱글 도메인 크롤링에 적합하다. CONCURRENT_REQUESTS(기본값 16) CONCURRENT_R..

Crawling

[크롤링/10]Scrapy로 크롤링 대상 사이트에 피해주지 않는 설정하기

크롤러를 만들때 중요한건 크롤링 대상 사이트에 피해를 주지않는 것이다. 크롤러는 크롤링 할 사이트가 있어야만 존재할 수 있다. 그러므로 크롤링 대상에 피해를 주지 않기위한 Scrapy 설정들(클릭하면 공식 문서로 이동) Settings — Scrapy 2.4.1 documentation Here’s a list of all available Scrapy settings, in alphabetical order, along with their default values and the scope where they apply. The scope, where available, shows where the setting is being used, if it’s tied to any particular comp..

박한결
'scrapy' 태그의 글 목록