- 카카오 검색 API

developers.kakao.com

 

- 애플리케이션 생성 후 REST API 키 복사

a89507c93f15074167c0700239d4b1d0

 

 

블로그 검색    메서드URL인증 방식

GET https://dapi.kakao.com/v2/search/blog REST API 키

 

 

헤더

Authorization Authorization: KakaoAK ${REST_API_KEY}
인증 방식, 서비스 앱에서 REST API 키로 인증 요청
필수

 

 

파라미터

query String 검색을 원하는 질의어
특정 블로그 글만 검색하고 싶은 경우, 블로그 url과 검색어를 공백(' ') 구분자로 넣을 수 있음
필수
sort String 결과 문서 정렬 방식, accuracy(정확도순) 또는 recency(최신순), 기본 값 accuracy 선택
page Integer 결과 페이지 번호, 1~50 사이의 값, 기본 값 1 선택
size Integer 한 페이지에 보여질 문서 수, 1~50 사이의 값, 기본 값 10 선택

query = "막대그래프"

 

import requests
import json

query = "막대그래프"
url = ("https://dapi.kakao.com/v2/search/blog?query=" + query)
headers = {'Authorization': 'KakaoAK {}'.format('a89507c93f15074167c0700239d4b1d0')}
data = requests.post(url, headers=headers)
print(data.text)

 

#JSON 문자열을 Python의 자료구조로 변경
result = json.loads(data.text)
print(type(result))
<class 'dict'>

 

 

documents = result['documents']

for doc in documents:
    print(doc['blogname'], doc['title'], doc['datetime'], )
야채's Data Tableau - <b>막대</b> <b>그래프</b> 2024-02-01T14:22:10.000+09:00
...

 

 

- MySQL 연동

!pip install pyMySQL

 

 

- 데이터베이스 접속 확인

import pymysql

con = pymysql.connect(host='데이터베이스 위치', 
                        port = 포트번호, 
                        user = '아이디', 
                        password = '비밀번호', 
                        db = '데이터베이스 이름', 
                        charset = '인코딩 방식')
con.close()

 

 

- SELECT를 제외한 구문 실행

#연결 객체를 가지고 cursor()를 호출해서 커서 객체 생성
cursor = con.cursor()
#sql 실행
cursor.execute("SQL 구문(%s를 대입할 데이터 개수만큼 생성)", (%s에 대입할 데이터를 나열))
#commint
con.commit()
  • SELECT문이 아니면 항상 커밋!

 

- SELECT 구문은 execute , 커서를 이용해서 fetch_one이나 fetchall()을 호출해서 튜플을 가져와 읽기

#SQL을 실행하기 위한 객체 생성
cursor = con.cursor()

#테이블 생성 구문 실행
cursor.execute("create table phamacy(placename varchar(30), addressname varchar(200)")

 

# 파싱한 데이터 순회

for doc in documents:
    cursor.execute("insert into blog(blogname, title) values(%s, %s)",
                   (doc["blogname"], doc["title"]))
con.commit()