네이버에서 제공하는 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..
finance.naver.com/marketindex/ https://finance.naver.com/marketindex/ 환전 고시 환율 2020.11.04 16:05 하나은행 기준 고시회차 1019회 finance.naver.com 위의 사이트에 접속하면 아래와 같은 화면을 볼 수 있습니다. 위의 사진에서 빨간박스 안의 내용들만 가져와서 프로그램 실행시 번호를 입력받아 입력받은 번호에 맞는 정보를 출력해보겠습니다. 실행화면 코드 import urllib.request import urllib.parse as parse from bs4 import BeautifulSoup 3개 라이브러리 import url = "https://finance.naver.com/marketindex/" html = ur..
CSS : Web에서 디자인을 담당 Id : #으로 표현 class : .으로 표현 select_one() : css 선택자로요소하나의 선택자로 요소하나를 추출 select() : CSS선택자로 요소 여러개를 리스트로 추출 실행화면 코드 #BeautifulSoup import from bs4 import BeautifulSoup #html 더미데이터 삽입 html=""" 데이터과학 빅데이터 분석 강좌 R언어 강좌 머신러닝을 위한 데이터처리 파이썬으로 익히는 딥러닝 이론 """ #태그 저장 soup = BeautifulSoup(html,'html.parser') h1 = soup.select_one("div#lecture > h1").string print("h1: ", h1) select_one(): 하..