본문 바로가기

전체글143

[크롤링] 무작정 시작하기 (4) - Selenium + Scrapy 2019/11/19 - [Back-end/Python] - [크롤링] 무작정 시작하기 (1) - 패키지 선택 2019/11/19 - [Back-end/Python] - [크롤링] 무작정 시작하기 (2) - 프로젝트 준비 2019/11/19 - [Back-end/Python] - [크롤링] 무작정 시작하기 (3) - Spider 지난 포스트에서 네이버 뉴스를 크롤링하는 Spider를 작성해보았다. 이번 포스트에서는 Rueqest를 던질때 Selenium을 사용하도록 Middleware를 생성할할 것이다. 네이버 뉴스가 동적 웹페이지가 아니라서 크게 차이를 느끼기는 어렵지만 Middleware로 만들어 두는 것이기 때문에 필요에 따라서 사용하면 된다. 이번 포스트는 갑자기 난이도가 올라갈 수 있으니 차분히 .. 2019. 11. 20.
[KAFKA] 무작정 시작하기 (3) - Kafka 설정 지난 포스트에서는 zookeeper에 대해서 간략하게 알아보고, zookeeper-server를 실행하기위한 zookeeper.properties를 작성하였다. 이번 포스트에서는 kafka에 대해서 알아보고, kafka-server를 실행하기위한 server.properties를 작성해보자. 1. Kafka란? 1-1. Apache에서 스칼라로 개발한 오픈소스 메시지 브로커. 1-2. 실시간 데이터 피드를 관리하기 위해 통일된, 높은 처리량, 낮은 지연시간을 지닌 플랫폼을 제공하는 것이 목표. 1-3. 분산 트랜잭션 로그로 구성된 pub/sub 메시지 큐이며, 대용량의 스트리밍 데이터를 처리하기에 적합함. - pub/sub ( 발행/구독 )은 한명이 데이터를 올리면 다른 사람들은 그 데이터를 가져다가 쓰.. 2019. 11. 20.
[KAFKA] 무작정 시작하기 (2) - Zookeeper 설정 이번 포스트에서는 Zookeeper에 대해서 간략하게 알아보고, zookeeper.properteis를 작성해 보도록하겠다. 1. zookeeper란? 1-1. zookeeper는 Apache의 오픈 소스 프로젝트 중 하나이며, 공개 분산형 구성 서비스, 동기 서비스 및 대용량 분산 시스템을 위한 네임 스페이스 레지스트리를 제공함. 1-2. znode(주키퍼 노드)는 네임 스페이스 안에 데이터를 저장하며, 클라이언트는 znode를 통해 데이터를 읽거나 씀. 1-3. 리더 노드가 존재하며, 리더를 제외한 노드들은 리더로부터 데이터를 동기화함. 1-4. 리더가 장애가 발생하게되면 다른 노드가 리더의 역할을 맡아 안정성이 뛰어남. 1-5. 일반적인 파일 시스템과 달리 zookeeper 데이터는 메모리에 보관되.. 2019. 11. 20.
[크롤링] 무작정 시작하기 (3) - Spider 2019/11/19 - [Back-end/Python] - [크롤링] 무작정 시작하기 (1) - 패키지 선택 2019/11/19 - [Back-end/Python] - [크롤링] 무작정 시작하기 (2) - 프로젝트 준비 이전 포스트에서 전반적인 프로젝트 준비를 진행하였다. 이번 포스트에서는 Spider를 구현하여 네이버 뉴스의 목록을 수집하는 것을 진행할 것이다. 크롤링은 접속한 페이지에서 접근 가능한 데이터는 무엇이든지 수집할 수 있다. 따라서, 저작권에 위배되는 행위를 하게될 수도 있다. 이를 예방하는 차원에서 웹사이트에는 크롤러가 접근할 수 있는 페이지를 정의한 [robots.txt]를 제공하고있다. 이는 단순히 안내문 정도로 생각하면 쉽다. 시작하기에 앞서 [ robots.txt ]를 간략하게 확.. 2019. 11. 19.