1. 이클립스 IDE에 스프링 부트 개발 툴 설치 1. Help -> Eclipse Marketplace 2. sts검색후 화면에 보이는 세가지 설치 ( 모두다 체크 ) 2. 프로젝트 생성 1. 이름, 사용하는 언어, 버전 선택 2. group : 도메인형식으로 설정 3. package : group이랑 똑같이 ( 달라도됨 ) 4. Next 1. Selected에 보이는 것들 검색하고 체크한뒤 Finish 3. 프로젝트 디렉토리 구조 1. src/main/java - java 파일 2. src/main/resources - Spring 정보, static html 문서 등등 3. src/test/java - Spring Boot Test를 수행할 폴더 4. src/main/webapp - jsp 파일 (..
웹데이터 형식 웹상에서는 다음과같은 형식을 많이 제공한다. XML / JSON / YAML / CSV / TSV / Excel / PDF ... 데이터형식으로는 Text/Binary형식이 있다. Text 일반적으로 에디터로 편집할 수 있는 데이터포맷 자연어(한국어, 영어, 중국어, 일어 ... )와 숫자로 구성된 데이터 장점 편집을 쉽게 할 수 있고 설명을 포함해서 쓸 수 있기 때문에 가독성이 좋다. 단점 보안성이 떨어지고 바이너리 데이터보다 데이터크기가 크다. 주의점 어떤 문자코드(문자인코딩)로 저장되어있느냐에 따라 다른 의미를 갖게 되므로 같은 문장을 텍스트로 저장할 때 인코딩문제를 해결해 주어야 한다. 보통 UTF -8 방식을 많이 사용한다. EX) XML / JSON / YAML / CSV .....
네이버에서 제공하는 api를 사용하려면 네이버개발자센터 회원가입을 해야 합니다. https://developers.naver.com/main/ NAVER Developers 네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음 developers.naver.com 상단의 Application -> 애플리케이션 등록 에서 하면 됩니다. 실습 네이버 블로그 검색결과를 출력해보도록 하겠습니다. 전체코드 import os import sys import urllib.request import json client_id = "클라이언트id" client_secre..
API란? 어떤 사이트가 가지고 있는 기능을 외부에서 쉽게 사용할수 있도록 공개해준것입니다. API를 제공하는 이유 서버의 부하를 감소시키기 위해 기업들은 이익을 보는것도 중요하지만 피해를 보면 안됩니다. 웹사이트의 기능을 크롤링을해서 사용할 수 있는데 서버의 부하가 커지게 되고 그럴바에야 api를 제공하기로 한 것입니다. 전세계의 날씨API 받아오기 https://home.openweathermap.org/api_keys Members Enter your email address and we will send you a link to reset your password. home.openweathermap.org 위의 사이트에서 회원가입을 하고 아래 사진에 보이는 API Keys를 클릭합니다. key라..
코드 from selenium import webdriver from bs4 import BeautifulSoup #url 지정 url="https://www.naver.com" #드라이버 로드 driver = webdriver.Chrome('c:\WebDriver\chromedriver') driver.get(url) #검색 input태그 id = query query = driver.find_element_by_id('query') #검색창 초기화 query.clear() #검색어 입력 query.send_keys(input()) #검색버튼 클릭 driver.find_element_by_id("search_btn").click()
공통코드 from selenium import webdriver from bs4 import BeautifulSoup import #크롬을 이용할 경우 driver = webdriver.Chrome('드라이버경로') driver.implicitly_wait(3) #PhantomJS를 이용할 경우 driver = webdriver.PhantomJS('드라이버경로') 네이버 #네이버 로그인페이지 주소 url_login = "https://nid.naver.com/nidlogin.login" user = "아이디" myPass = "비밀번호" #웹페이지를 읽음 driver.get(url_login) print("로그인 페이지에 접속하였습니다") #입력박스에 있는 텍스트를 모두 지워줌. #비밀번호, 아이디태그 ..
PhantomJS 드라이버로 추출 #셀레니움 import from selenium import webdriver url="http://www.naver.com" #phantomjs 드라이버경로 지정 ( .exe는 없어도 됨 ) driver = webdriver.PhantomJS("c:\WebDriver\phantomjs") #드라이버가 초기화 될 때까지 3초 대기 driver.implicitly_wait(3) #url지정 driver.get(url) #스크린샷 이름 지정 ( 주피터 워크스페이스 경로에 저장됨 ) driver.save_screenshot("naver.png") driver.quit() 결과 작업 경로에 naver.png 라는 이름으로 스크린샷이 찍힌것을 확인할 수 있습니다.
Selenium 사용법 import from selenium import webdriver 드라이버 로드 크롬 : browser = webdriver.Chrome("크롬 드라이버가 있는 경로") PhantomJS: browser = webdriver.PhantomJS("팬텀JS드라이버가 있는 경로") 셀레니움으로 DOM(계층요소) 요소를 선택하는 방법 DOM내부에 있는 여러개의 요소들 중에서 처음 찾아지는 요소를 추출하는 메소드 메소드 설명 find_element_by_id(id) id속성으로 요소를 하나 추출한다 find_element_by_name(name) name속성으로 요소를 하나 추출한다 find_element_by_css_selector(query) css선택자로 요소를 하나 추출한다 fin..
Selenium 웹 브라우저를 컨트롤 할 때 웹 자동화 하는 도구중의 하나 자동화의 종류 가장 원초적인 자동화는 화면의 좌표를 기준으로 한 자동화 selenium 도구를 이용하는 웹 자동화 윈도우즈의 자동화 작업의 자동화 웹 드라이버의 구성 WebDriver.Firefox : 파이어폭스 WebDriver.Chrom: 크롬 WebDriver.Ie: 익스플로어 WebDriver.Opera: 오페라 WebDriver.PantomJs: PantomJS브라우저 ( CLI 형식의 브라우저 ) Selenium Client 설치 pip install selenium Selenium 드라이버 설치 ( 다운로드 ) Firefox 드라이버 설치 https://github.com/mozilla/geckodriver/relea..
requests 모듈 http에서 사용하는 데이터 전송방식에는 GET,POST두가지가 있는데 두 방식의 메소드를 제공합니다. GET var = requests.get("http://google.com") POST formData = {"key1":"value1","key2":"value2"} var = requests.post{"http://sample.com",data=formData} 텍스트/바이너리 데이터 가져오기 ( 시간정보 ) import requests resData = requests.get("http://api.aoikujira.com/time/get.php") #텍스트 형식으로 추출하기 txt = resData.text print(txt) #바이너리 형식으로 데이터 추출하기 bin = r..
Http 통신의 특성 Connectionless - 클라이언트가 request를 서버에 보내면, 서버는 클라이언트에게 response를 보낸다. 그리고 접속을 끊는 특성 Stateless - 접속을 끊는 순간 클라이언트와 서버의 통신은 끝나고 상태정보는 유지하지 않는 특성 쿠키(cookie) 클라이언트에 저장되는 키와 값이 들어있는 작은 데이터 파일 쿠키는 이름,값,만료날짜(쿠키의저장기간), 경로 정보가 들어있습니다. 쿠키는 일정기간동안 데이터를 저장할 수 있어서 로그인 상태를 유지합니다. 쿠키는 클라이언트의 상태정보를 유저의 하드디스크에 저장하였다가 필요할 때 참조, 재사용 합니다. 쿠키의 사용예 1.방문사이트에서 아이디와 비번을 저장하겠습니까? 라고 메시지가 나오면 쿠키에 저장하겠냐는 의미입니다. 2..
news.naver.com/main/list.nhn?mode=LPOD&mid=sec&sid1=01&sid2=140&oid=001&isYeonhapFlash=Y&aid=0011991977 위 사이트에서 헤드라인결과만 출력해보겠습니다. 위의 뉴스와 같은 내용이 출력되는것을 확인할 수 있습니다. 코드 import urllib.request, urllib.parse, urllib.error from bs4 import BeautifulSoup import requests requests 포함 import url = 'https://news.naver.com/main/list.nhn?mode=LPOD&mid=sec&sid1=001&sid2=140&oid=001&isYeonhapFlash=Y&aid=00119919..