본문 바로가기

웹크롤링, 파싱, 가공, 매크로 프로그램 개발관련 서비스 cchart.xyz 웹크롤링, 파싱, 가공, 매크로 프로그램 개발관련 서비스가 새롭게 오픈해서 소개해드릴게요. 사이트는 http://cchart.xyz 입니다. cchart.xyz / 웹크롤링, 파싱, 가공 매크로 프로그램 개발 서비스 반복적인 웹크롤링, 파싱, 가공 매크로 프로그램 개발 서비스 cchart.xyz 실제 크롤링이라는 작업은 복잡한 것이죠. 간단하게 말하자면 인터넷에 있는 수많은 웹 페이지를 기계적으로 접근해서 해당 페이지의 정보를 읽고 수집하고 페이지에 있는 링크들에 접속해서 또 페이지의 정보를 읽고 수집하고 이런 것들을 반복하는 것이라고 할 수 있겠죠. https://ko.wikipedia.org/wiki/%EC%9B%B9_%ED%81%AC%EB%A1%A4%EB%9F%AC 웹 크롤러 - 위키백과, 우리 모.. 더보기
파이썬 크롤링 005 - 쇼핑몰 상품정보 (with selenium) / 데이터수집 자동화 앞선 포스팅에서 파이썬 코드를 통한 크롤링 기본적인 내용을 한 번 정리해봤습니다. 너무너무너무 단순했죠? 이번에는 조금 다른 방법으로 크롤링을 해보려고 합니다. 바로 Selenium 라이브러리를 통해서 크롤링 하는 것인데요. 아래서 조금 더 자세하게 설명해드리겠습니다. 크롤링에 대한 기본적인 내용을 보시려면 아래 링크로 걸어드리는 4개 포스팅을 보시면 조금 감을 잡을 수 있지 않을까? 라고 생각합니다. 2020/04/19 - 파이썬 크롤링 001 - 구성요소, 구현방법 2020/04/26 - 파이썬 크롤링 002 - 크롤러 구현 2020/05/03 - 파이썬 크롤링 003 - 파서 구현 2020/05/05 - 파이썬 크롤링 004 - 파싱 결과 저장 기존에 파이썬 requests 라이브러리를 활용해서 간.. 더보기
파이썬 크롤링 004 - 파싱 결과 저장 / 데이터수집 자동화 정말 기본적인 크롤링 구현을 보여드리고 있습니다. 앞선 포스팅 3개에서 이어지는 포스팅이고요. 파이썬을 활용한 크롤링에 대해서 궁금하신 분들은 001부터 봐주시면 더 이해가 쉽습니다. 아래 링크로 달아둘게요. 2020/04/19 - 파이썬 크롤링 001 - 구성요소, 구현방법 2020/04/26 - 파이썬 크롤링 002 - 크롤러 구현 2020/05/03 - 파이썬 크롤링 003 - 파서 구현 003에서 작성한 코드를 일부 수정했습니다. 일단 전체는 이렇게 생겼고요. 추가된 부분만 설명해볼게요. import requests from bs4 import BeautifulSoup crawling_target_urls = [ 'https://finance.naver.com/item/main.nhn?code=0.. 더보기
파이썬 크롤링 003 - 파서 구현 / 데이터수집 자동화 벌써 3번째 글이네요. 앞에 001, 002 글에서 이어지는 글이라서 관심있는 분들은 한 번 읽고 이번 글을 읽으시면 더 이해가 쉬울 것 같습니다. 아래 링크로 달아둘게요. 2020/04/19 - 파이썬 크롤링 001 - 구성요소, 구현방법 2020/04/26 - 파이썬 크롤링 002 - 크롤러 구현 이번 포스팅은 제목에도 나와있지만 파서를 구현하는 내용입니다. 정확하게는 멋진 라이브러리를 사용해서 크롤링한 데이터에서 원하는 내용만 뽑아내보는 것이죠. 002 포스팅 예제에서 주식 정보가 나와있는 사이트를 예로 들었는데 이번 포스팅에서도 이어서 사용해봅니다. 위 그림에서 오른쪽에 박스 그려둔 곳 보이시나요? 저곳에 있는 정보를 파싱하는 대상으로 설정해보죠. 그렇다면 아래와 같은 코드로 가능합니다. 코드를 .. 더보기
파이썬 크롤링 001 - 구성요소, 구현방법 / 데이터수집 자동화 안녕하세요 ! 오랜만에 정말 오랜만에 잡다한 기술 내용으로 포스팅을 하네요. 이번에 조금 길게 정리해보고 싶은 주제는 크롤링입니다. 크롤링이 꼭 개발자의 영역은 아닌것 같습니다. 누구나 개발할 수 있는 영역이라 생각하고 복잡한 내용은 조금 공부하면 충분히 할 수 있는 부분이라고 생각됩니다. 첫 번째 포스팅은 구현 방법을 정리하는 정도로 마치고 두번째, 세번째 이어가면서 실제로 어떻게 크롤링 프로그램을 구현하는지 더 할 수 있으면 수집한 데이터를 데이터베이스에 저장하고 관리하는 내용까지 정리해보려고 합니다. 이 포스팅을 보고 계시다면 당연히 검색으로 들어오셨을 확률이 매우 높죠. 검색어에는 '크롤링 (crawling)' 이 포함되었을 확률도 매우 높다고 생각됩니다. 따라서 크롤링이 뭐야? 는 넘어가도 되겠.. 더보기
자바스크립트 URL 정보 가져오기(찾기, 확인) 자바스크립트(javascript)에서 현재 URL에 대한 정보는 window 객체의 location에 저장되어 있습니다. 저는 ngee.tistory.com/admin/plugin/refererKeyword/ 라는 페이지에서 location을 출력해봤습니다. 크롬에서 개발자 툴에 들어간 뒤에 Console 창에 console.log(window.location); 입력 후 엔터를 누르면 출력할 수 있습니다. 출력한 결과를 확인해보면 여러 가지 정보가 들어가 있는 것을 확인할 수 있습니다. 먼저 host/hostname은 ngee.tistory.com이고요. href는 전체 URL을 값으로 가지고 있네요. pathname은 전체 URL에서 host 값을 제외한 주소를 값으로 가지고요. protocol도 확.. 더보기
Html parsing - beautifulsoup4 (find all elements using attribute) 아래 포스팅들에서 이어집니다. :-) 2016/08/21 - Html parsing - beautifulsoup4 (child element) 2016/08/21 - Html parsing - beautifulsoup4 (find_all image src) 2016/08/20 - Html parsing - beautifulsoup4 (install) 위 포스팅들을 보면 주로 find_all 에서 class 이름으로 elements를 찾는데요. 전 이게 일반적이라고 봅니다. 대부분의 사이트에서는 class 이름만으로 찾기가 가능하다고 생각하거든요. 이번 포스팅에서는 class가 아니라 다른 attribute를 활용해서 elements를 찾는 것에 대해서 작성해둡니다. 이 포스팅 내용은 아래 URL에서도 찾.. 더보기
Html parsing - beautifulsoup4 (child element) 이전 글 :) 2016/08/20 - [Python/libraries] - Html parsing - beautifulsoup4 (install)2016/08/21 - [Python/libraries] - Html parsing - beautifulsoup4 (find_all image src) 이번에는 특정 element의 child element의 값을 얻는 과정을 간단하게 작성해두려고 합니다. 먼저 사용하려는 웹 소스는 제 블로그이구요. http://ngee.tistory.com 현재 여러분은 이 글을 읽고 있다면 접속하신 상태겠군요 !!!아무튼 왼쪽에 카테고리가 보이는데 이걸 파싱해보겠습니다. 소스를 보니 하위에 li로 구성되어있네요. (빨간색으로 표시된 부분) 이렇게 해보려고 합니다. 1. 를 .. 더보기
Html parsing - beautifulsoup4 (find_all image src) 이전 글 :) 2016/08/20 - [Python/libraries] - Html parsing - beautifulsoup4 (install) 이번에는 간단한 예제로 Beautifulsoup4 에서 제공되는 find_all을 알아보도록 하겠습니다 !!! find_all 이라는 함수는 이름에서도 알 수 있듯이 동일한 것을 모두 찾아주는 함수입니다. 자세한 설명은 https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all 을 참고하세요 :) https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all 실제 웹 페이지를 통해서 한 번 find_all이 어떤 역할을 할 수 있는지 알아보아요. 만만한건.. 더보기
Html parsing - beautifulsoup4 (install) 살다보면 하기 싫은 Html parsing도 해야 하는 날이 있는거죠 :) 아주 예전에 beautifulsoup을 통해서 Html parsing을 했던 적이 있습니다. 오늘 다시 설치하려고 찾아보니 버전 4가 나왔더라구요. 그리고 이전 보다는 수월하게 Parsing이 가능해진 것 같습니다. 암튼 Python 으로 Html Parsing을 처리해야 하는 분들은 4 버전으로 하는게 좋을 것 같아요 !!! pip 로 검색해보면 아래와 같습니다. pip install beautifulsoup4 위 명령어로 설치하실 수 있습니다. 뒤에 꼭 4를 붙여서 설치하세요 !! 안그럼 3버전이 설치되니깐요!! 아래 사이트에 들어가면 좋은 예제 및 설명이 되어있어요!! 참고하시길 !! https://www.crummy.com.. 더보기
Html data attribute parsing using jQuery data-* attribute는 사용하기에 따라 유용하게 활용할 수 있습니다. 예로 아래와 같은 data-* attribute가 있다고 가정하겠습니다. 2개의 data-* attribute를 설정해봤어요. 하나는 data-type다른 하나는 data-sub-type 입니다. jQuery를 통해서 해당 data-* attribute를 파싱하는 방법은 아래와 같아요. 위 소스로 출력되는 결과는 아래와 같습니다. // AAA var pType = $('.testP').attr("data-type") var pSubType = $('.testP').attr("data-sub-type") console.log(pType); console.log(pSubType); data-* attribute를 하나 더 추가해봤.. 더보기
파이썬 baisc - xml parsing(파싱) 파이썬에서 xml parsing 하는 방법은 매우 다양하죠. 어떤 라이브러리를 쓰느냐에 따라서, 코딩 내용도 조금은 달라질 것이구요. 이번 포스팅에서는 ElementTree 라이브러리를 이용해서 xml parsing 하는 방법에 대해서 간략하게 작성해보려구요. 1. ElementTree 라이브러리 설치 일단 ElementTree가 설치되어 있어야 하겠죠? 저는 pip를 이용한 설치를 추천드립니다. 혹시 pip를 설치가 되어 있지 않다면, apt-get install python-pip 로 설치하세요 (물론 root 권한에서요) ElementTree 설치는 아래와 같아요.root 권한에서 pip install elementtree 2. XML 파싱 ElementTree 라이브러리를 설치했으니, 모듈을 불러.. 더보기