Python-이론/python-인공지능2(38)
-
xml데이터 분석
xml 데이터 분석 xml은 특정 데이터를 태그에 감싸서 표현하는 마크업 형태의 텍스트 데이터를 말한다. 데이터 밑에 서브데이터를 붙이고 계속해서 붙여서 사용하여 계층적 구조를 갖고있다. 데이터 형태로 되어 있으며 요소의 이름은 아무거나 하면 된다. from bs4 import BeautifulSoup import urllib.request as req import os.path url = "http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=108" savename = "forecast.xml" if not os.path.exists(savename): req.urlretrieve(url,savename) xml = open(savename,"..
2018.04.03 -
텍스트 데이터와 바이너리 데이터
텍스트 데이터와 바이너리 데이터 데이터는 일반적으로 텍스트와 바이너리의 형태로 이루어져있습니다. 텍스트는 문자와 숫자로 이루어져있고 우리가 알아볼 수 있는 내용으로 만들어져 있습니다. 하지만 바이너리 데이터는 문자이외의 영역에 우리가 알아볼 수 없는 내용으로 만들어져있습니다. 같이 100을 썼을 때 크기를 비교해보면 텍스트 데이터 Vs 바이너리 데이터 텍스트 데이터는 바이너리 보다 용량이 큰대신 사람들이 쉽게 알아 볼 수 있습니다. 바이너리는 크기가 작고 텍스트 에디터로 편집할 수 없습니다. 그리고 텍스트 데이터는 언어에 따라 인코딩을 알맞게 사용해야 내용을 알아 볼 수 있습니다. 웹상에서는 일반적으로 바이너리데이터를 많이 사용합니다. 왜냐하면 사진과 동영상들이 용량이 크기때문에 텍스트 데이터 보단 바이..
2018.04.02 -
web api를 사용하여 데이터 추출하기
webAPI사용하기 지금까진 requests, urllib, selenium, phantomjs등을 사용해서 외부의 데이터들을 스크래핑해왔습니다. 오늘 해볼 것은 웹페이지에서 완전히 제공해주는 API를 사용하여 데이터를 가져올 것입니다. 웹사이트에서는 왜 API를 제공하는 것일 까요??? 그 이유는 많은 사람들이 웹페이지에 크롤링하면 서버에 과부화가 될 수 있기 때문에 차라리 크롤링을 할 거면 API를 제공하여 서버에 부담을 줄일려고 만든 것입니다. 또한 유료로 파는 API도 많은데 이를 통해서 이득도 많이 얻을 수 있습니다. 그래서 오늘은 날씨정보를 가져올 수 있는 OpenWeatherMap API를 사용해보겠습니다. 날씨 API 회원 가입 후 api키를 받으면 됩니다. 이 api는 유료 버전도 있지만..
2018.03.30 -
ubuntu에서 selenium과 Phantomjs를 사용해서 스크래핑해오기
phantomjs와 selenium설치하기 //selenium설치 pip3 install selenium //Beautifulsoup4 설치 pip3 install Beautifulsoup4 //PhantomJS에 필요한 라이브러리 설치 apt-get install -y wget libfontconfig //바이너리를 내려받고 설치하기 mkdir -p /home/root/src && cd $_ wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 tar jxvf phantomjs -2.1.1-linux-x86_64.tar.bz2 cd phantomjs-2.1.1-linux-x86_64/bin/ cp..
2018.03.29 -
로그인이 필요한 사이트 파싱해오기
로그인을 통해 파싱해오기 오늘은 로그인을 통해서 파싱을 해보겠습니다. 로그인과 관련된 정보는 크롬 관리자탭에서 확인 할 수 있습니다. 우선 관리자 도구에 들어가서 네트워크 탭에 들어갑니다. 그리고 과거의 파일까지 볼 수 있게 preserve log를 눌러 줍니다. 그러고 나서 로그인 후 생긴 파일을 자세히 보면 이런식으로 아이디와 비밀번호 등을 볼 수 있r고 post형식과 각종 요청사항들을 볼 수 있습니다. 저는 저사이트가 아닌 티스토리 로그인 후 방문객 수를 파싱해와 보겠습니다. import requests session = requests.session() loginInfo = { "redirectUrl":"http://hoony-gunputer.tistory.com/", "loginId" : "yo..
2018.03.14 -
css selector를 통해서 스크래핑해오기
cssSelector 사용하기 보통 데이터를 스크래핑해올 때 크롬의 관리자 도구와 같은 것을 유용하게 사용한다. 오늘은 크롬 관리자 도구의 유용한 기능css selector를 통해서 스크래핑해오고 css선택자를 연습해보겠다. 오늘 스크래핑 해올 내용 여기서 f12를 크롬 관리자 도구가 나온다. html 코드에 도달하게 되면 그 부분이 파란색으로 변한다. 코드에 마우스 오른쪽 버튼을 누르 copy에 copySelector라는 부분을 누르면 body > div.content-wrapper > article > div.wiki-content.clearfix > div > div:nth-child(16) > p 와 같이 html 코드속에서의 위치를 가져올 수 있다. from urllib import reques..
2018.03.09