본문 바로가기
비트 장기/파이썬

8/28 크롤링 api긁어오기

by woohyun22 2018. 8. 28.

크롤링해서가져오는데 까지

import urllib.request

client_id = "Vneh4QhxmofgSOMj2LB7"#내 client id문자열로 입력
client_secret = "g8uD1EnrZD"
print(type(client_id))
encText = urllib.parse.quote("태풍")#이슈인 단어
url = "https://openapi.naver.com/v1/search/news.json?query=" + \
encText + "&start=1&display=100"# news부분만 바꾸면된다 엔터치면 자동으로 연결해줌 가장 최근에 뜬것 백개만 가져온다.
print(url)# xml,과json으로 가져온다 json은 데이터를 주고받는 용도로만 쓰인다. 제이슨
request = urllib.request.Request(url)#요청 객체를 만들어준다.
request.add_header("X-Naver-Client-Id",client_id)#뒤쪽인수에 원래 아이티 문자열 그대로 적어도됨
request.add_header("X-Naver-Client-Secret",client_secret)
response = urllib.request.urlopen(request)#데이터 끌고온것은 response가 가지고있다.
print(response)

rescode = response.getcode()
if(rescode==200):
print("성공")
response_body = response.read().decode('utf-8')#크롤링한데이터는 response body에 들어가있다
print(type(response_body))#str타입
#print(response_body)
#print(response_body.decode('utf-8'))
else:
print("실패")
print("Error Code:" + rescode)

#{} dictionary

명사 추출

"""
#kkma를 활용해서 크롤링한거 명사만 찾아주기
import matplotlib#외장 라이브러리
#konlpy라는 폴더 밑에 tag라는 파일이 하나 있다. 이 파일 안에 Kkma라는 클래스가 존재한다.
from konlpy.tag import Kkma #전부 import되있다.Kkma=클래스 package에 넣어서쓴다 폴더
kkma = Kkma() #객체 생성 //문자열중에서 명사만 찾아주는 역할을 한다.
#b = "호랑이 나비 달린다 토끼 향기로운 "
c = kkma.nouns(response_body)#명사 뽑아내기
print(c)
print(c)# 결과를 리스트로 나타냄 문자열로 빼내려면 for in 사용
"""


import matplotlib#외장 라이브러리
#konlpy라는 폴더 밑에 tag라는 파일이 하나 있다. 이 파일 안에 Kkma라는 클래스가 존재한다.

from konlpy.tag import Kkma #전부 import되있다.Kkma=클래스 package에 넣어서쓴다 폴더
a = Kkma() #객체 생성 //문자열중에서 명사만 찾아주는 역할을 한다.
b = "나비 코끼리 토끼 나비"
c = a.nouns(b)
print(c)

#print(c)# 결과를 리스트로 나타냄 문자열로 빼내려면 for in 사용
# for i in c:
# print(i)

from konlpy.tag import Okt #중복이 되던지말던지 둘다 출력해줌
a = Okt() #객체 생성 //문자열중에서 명사만 찾아주는 역할을 한다.
b = "호랑이 나비 달린다 토끼 향기로운 나비 코끼리 토끼 나비"
c = a.nouns(b)
print(c)

#Okt 중복이 되던지말던지 둘다 출력해줌
#Kkma 중복되면 하나만 출력한다.

import collections
d = collections.Counter(c) #객체생성 count라는 클래스
print(d)#c를 받아와서 명사형뽑은거 중에 count한다.
d1 = [];#리스트 객체 생성
d2 = []
for key,value in d.most_common(3):#빈도수 높은순서대로 3개 뽑아낸다.
d1.append(key)#빈도수 높은 순서대로 3개
d2.append(value)#빈도수

print(d1)
print(d2)

빈도수 높은순으로 뽑을때, 한글자인것들은 뺴버리기

import urllib.request

client_id = "Vneh4QhxmofgSOMj2LB7"#내 client id문자열로 입력
client_secret = "g8uD1EnrZD"
encText = urllib.parse.quote("태풍")#이슈인 단어
url = "https://openapi.naver.com/v1/search/news.json?query=" + \
encText + "&start=1&display=100"# news부분만 바꾸면된다 엔터치면 자동으로 연결해줌 가장 최근에 뜬것 백개만 가져온다.
print(url)# xml,과json으로 가져온다 json은 데이터를 주고받는 용도로만 쓰인다. 제이슨
request = urllib.request.Request(url)#요청 객체를 만들어준다.
request.add_header("X-Naver-Client-Id",client_id)#뒤쪽인수에 원래 아이티 문자열 그대로 적어도됨
request.add_header("X-Naver-Client-Secret",client_secret)
response = urllib.request.urlopen(request)#데이터 끌고온것은 response가 가지고있다.
print(response)

rescode = response.getcode()
if(rescode==200):
print("성공")
response_body = response.read().decode('utf-8')#크롤링한데이터는 response body에 들어가있다
print(type(response_body))#str타입
print(response_body)
print("========================================================================")
else:
print("실패")
print("Error Code:" + rescode)
#{} dictionary
"""
#kkma를 활용해서 크롤링한거 명사만 찾아주기
import matplotlib#외장 라이브러리
#konlpy라는 폴더 밑에 tag라는 파일이 하나 있다. 이 파일 안에 Kkma라는 클래스가 존재한다.
from konlpy.tag import Kkma #전부 import되있다.Kkma=클래스 package에 넣어서쓴다 폴더
kkma = Kkma() #객체 생성 //문자열중에서 명사만 찾아주는 역할을 한다.
#b = "호랑이 나비 달린다 토끼 향기로운 "
c = kkma.nouns(response_body)#명사 뽑아내기
print(c)# 결과를 리스트로 나타냄 문자열로 빼내려면 for in 사용
"""
from konlpy.tag import Okt #중복이 되던지말던지 둘다 출력해줌
okt = Okt() #객체 생성 //문자열중에서 명사만 찾아주는 역할을 한다.
c = okt.nouns(response_body)
print("갯수 : ", len(c))
# for i in c:
# if len(i)==3:
# c.remove(i)
# else:
# continue
t = []
for i in c:
if len(i)>1:
t.append(i)


c=t;
print("갯수 : ", len(c))# ,로 두개 뽑아내기
print(c)
#print(c)

import collections#객체를 제거시키면 안된다. 건더뛸떄가 있다. 제거가 완벽하게 안된다.
d = collections.Counter(c) #객체생성 count라는 클래스
#print(d)#c를 받아와서 명사형뽑은거 중에 count한다.
d1 = [];#리스트 객체 생성
d2 = []
for key,value in d.most_common(10):#빈도수 높은순서대로 3개 뽑아낸다.
d1.append(key)#빈도수 높은 순서대로 3개
d2.append(value)#빈도수
print(d1)
print(d2)
# for i in c:
# print(i)


import 관련 예제


#import 관련 예제
#ex1
"""
import matplotlib.pyplot# 패키지 이름matlotlib pyplot class

matplotlib.pyplot.plot()#plot창
matplotlib.pyplot.show()
"""
#ex2
"""
from matplotlib.pyplot import *# *은 모든것//보통이렇게 쓴다.
plot()
show()
"""
#import된 함수명이 같을경우 (원래는 마지막으로 import된것이 쓰인다.)

#ex3
"""
import matplotlib.pyplot as plt# plt.로 함수써주세요~
plt.plot()
plt.show()
"""

plot사용 예제

#plot사용 예제
#ex1
"""
import matplotlib.pyplot as plt# plt.로 함수써주세요~
plt.plot()
plt.show()
"""
#ex2
"""
import matplotlib.pyplot as plt# plt.로 함수써주세요~
x = [10,20,30,40,50] #일반적으로 x로잡아줌
plt.plot(x,'b-')#blue green red 의 약자
plt.show()
"""
#ex3
"""
import matplotlib.pyplot as plt# plt.로 함수써주세요~
x = [10,20,30,40,50] #일반적으로 x로잡아줌
plt.plot(x,'bo')# -는 선이고 o는 점이다.
plt.show()
"""
#ex4
"""
import matplotlib.pyplot as plt# plt.로 함수써주세요~
x = [10,20,30,40,50] #일반적으로 x로잡아줌
plt.plot(x,'bv')# -는 선이고 o는 점이다.v는 세모다
plt.show()
"""
#ex5
import matplotlib.pyplot as plt# plt.로 함수써주세요~
x = [10,20,30,40,50] #일반적으로 x로잡아줌
plt.plot(x,'b-v')# -는 선이고 o는 점이다.
plt.show()

생성자 함수재정의

class Tiger:
def __init__(self,aaa=0,bbb=0):#생성자 함수재정의
print(aaa,bbb)

t1 = Tiger()
t2 = Tiger(1)
t3 = Tiger(1,2)
t4 = Tiger(bbb=999)#적어준 애만 받는다. 동일한 변수명을 써줘야된다.

class Lion:
def __init__(self,aaa=None,bbb=None):#생성자 함수재정의 None는 문자열 받아주는것
print(aaa,bbb)

l1 = Tiger(aaa='호랑이')
l2 = Tiger(bbb="호랑이")
l3 = Tiger("호랑이","코끼리")

한글쓰는코드


"""#한글쓸떄 쓰는 코드
import matplotlib.font_manager as fm
fl = fm.FontProperties(fname='C:\Windows\Fonts\malgun.ttf').get_name()# 한글 pont 경로를 넣어줘야된다.
#C:\Windows\Fonts\ 파일속성명으로 적어줘야된다.
plt.rc('font',family=fl)
"""

last



"""
import matplotlib.pyplot as plt# plt.로 함수써주세요~
x = [5,4,3,2,1] #일반적으로 x로잡아줌
h = [1,1,1,1,99]
plt.plot(x,h)# -는 선이고 o는 점이다.
plt.show()
"""
"""
import random
import matplotlib.pyplot as plt# plt.로 함수써주세요~
x = list(range(100))
h= random.sample(range(100),100)
plt.plot(x,h)# -는 선이고 o는 점이다.
plt.show()
"""

import matplotlib.pyplot as plt# plt.로 함수써주세요~

#한글쓸떄 쓰는 코드
import matplotlib.font_manager as fm
fl = fm.FontProperties(fname='C:\Windows\Fonts\malgun.ttf').get_name()# 한글 pont 경로를 넣어줘야된다.
#C:\Windows\Fonts\ 파일속성명으로 적어줘야된다.
plt.rc('font',family=fl)

plt.title('끝')#표 제목 한글이안된다.

plt.plot()
plt.show()


728x90

'비트 장기 > 파이썬' 카테고리의 다른 글

8/30  (0) 2018.08.30
8/29  (0) 2018.08.29
파이썬 문제복습 4번~13번  (0) 2018.08.28
8/27 api 검색어 긁어오기  (0) 2018.08.27
8/25 21번~끝  (0) 2018.08.25

댓글