[์นด์นด์˜ค๋ทฐ] ๋ณด๋“œ ์ž๋™ ๋ฐœํ–‰ 2๋‹จ๊ณ„. ๊ตฌ๊ธ€ ์•ฑ ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณธ์ธ ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ… ๊ธ€ ๊ฐ€์ ธ์˜ค๊ธฐ(OPEN API)
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋””์ง€ํ„ธ ๊ฟ€ํŒ

[์นด์นด์˜ค๋ทฐ] ๋ณด๋“œ ์ž๋™ ๋ฐœํ–‰ 2๋‹จ๊ณ„. ๊ตฌ๊ธ€ ์•ฑ ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณธ์ธ ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ… ๊ธ€ ๊ฐ€์ ธ์˜ค๊ธฐ(OPEN API)

by ์ผ์ƒ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค 2022. 3. 21.

๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ๋Š” ์ž๊ธฐ ๋ธ”๋กœ๊ทธ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ๋˜๋Š” ์ค„ ์•Œ์•˜๋Š”๋ฐ, ์ „์ฒด ๋ธ”๋กœ๊ทธ์—์„œ ํŠน์ • ๋‹จ์–ด๋ฅผ ๊ฐ€์ง€๊ณ  search ํ•˜๋Š” open API๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ๋ธ”๋กœ๊ทธ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฑ™๊ฒจ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„ ์ค„ ์•Œ์•˜๋Š”๋ฐ ์—†์–ด์„œ ์•ฝ๊ฐ„ ์šฐํšŒํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•ด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.  

1๋‹จ๊ณ„ . ์•„๋ž˜ ๋งํฌ์—์„œ ๋„ค์ด๋ฒ„ ๋‰ด์Šค ์ˆœ์„œ๋Œ€๋กœ ์ž‘์—… ํ•œ ํ›„ ์•„๋ž˜ ์†Œ์Šค๋ฅผ ์ด์šฉ

 

 

[์นด์นด์˜ค๋ทฐ] ๋ณด๋“œ ์ž๋™ ๋ฐœํ–‰ 1๋‹จ๊ณ„. ๊ตฌ๊ธ€ ์•ฑ ์Šคํฌ๋ฆฝํŠธ๋กœ ๋„ค์ด๋ฒ„ ๋‰ด์Šค, ๋‹ค์Œ ์›น๋ฌธ์„œ ๊ฐ€์ ธ์˜ค๊ธฐ(OPEN AP

์นด์นด์˜ค๋ทฐ ์ž๋™๋ฐœํ–‰์„ ํ•˜๋ ค๋‹ค ๋ณด๋‹ˆ ์–ด๋–ค ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ• ์ง€ ๊ณ ๋ฏผํ–ˆ๋‹ค. ๊ธฐ์กด๊นŒ์ง€ ์ˆ˜๋™์œผ๋กœ ํ•˜๋˜ ๋ณด๋“œ ๋ฐœํ–‰์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ž๋™ ๋ฐœํ–‰์„ ์ƒ๊ฐํ•ด๋ณด๊ธฐ๋กœ ํ•˜์˜€๋‹ค. 1. ์ฝ˜ํ…์ธ  : ๋„ค

odaily.tistory.com

1๋‹จ๊ณ„๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ์•„๋ž˜๋ฅผ ํ™•์ธํ•ด๋„ ์ ์šฉํ•  ์ˆ˜ ์—†์œผ๋‹ˆ ์ •๋… ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. 1๋‹จ๊ณ„๋ฅผ ํ•œ ํ›„์— ๋‹ค์‹œ ํ•ด๋‹น ๊ธ€์„ ์ฝ์–ด์ฃผ์‹œ๊ธธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

1-2 ๋‹จ๊ณ„. ๋‚ด ๋ธ”๋กœ๊ทธ๊ฐ€ ๊ฒ€์ƒ‰์ด ์•ˆ๋˜์„œ ์ถ”๊ฐ€์ ์œผ๋กœ ์ƒ๊ฐํ•œ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.

๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ query ์กฐ๊ฑด์ด ํฌ์ŠคํŒ…ํ•œ ๋ณธ๋ฌธ(description)์—์„œ ์ฃผ๋กœ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์„ ์•Œ ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ธ€์„ ์ž‘์„ฑ์‹œ ๋ณธ๋ฌธ์— ๋‚˜๋งŒ์˜ ์‹œ๊ทธ๋‹ˆ์ฒ˜ ๊ฐ’์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜๋ฉด, query ์กฐ๊ฑด์„ "์˜ค๋ฐ์ผ๋ฆฌ(Odaily)์˜" ๋กœ ์„ค์ •ํ•˜๋ฉด ๋‚ ์งœ ์ˆœ ์ •๋ ฌ ์‹œ ๋‚ด ๋ธ”๋กœ๊ทธ๊ฐ€ ์ž˜ ๊ฒ€์ƒ‰์ด ๋˜๋ฉฐ, ํ˜น์‹œ๋‚˜ ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ๊ฐ€ ๊ฒ€์ƒ‰๋˜์–ด ๋…ธ์ถœ ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” bloglink์— ๋‚˜์˜ blogID๋ฅผ ๊ธฐ์žฌํ•˜๋ฉด ๋”ฑ ๋‚ด ๋ธ”๋กœ๊ทธ๋งŒ ์„œ์นญ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ์‹œ) ์˜ค๋ฐ์ผ๋ฆฌ(Odaily)์˜ ๊ธฐ๋ก  

 

2๋‹จ๊ณ„. ์œ„ ๋‚ด์šฉ์„ ๋‹ค ๋”ฐ๋ผํ•˜๊ณ  ์™”๋‹ค๋ฉด ์•„๋ž˜ ์†Œ์Šค๋ฅผ google app script ์— ์ถ”๊ฐ€

  • URL ๋ณ€๊ฒฝ ํ›„ query์กฐ๊ฑด ๋ณ€๊ฒฝ
  • ๋‚˜์˜จ ๊ฒฐ๊ณผ์—์„œ bloglink๋กœ ํ•œ๋ฒˆ ๋” ํ•„ํ„ฐ๋ง
function getNaverBlog() {

  var client_key = "๋ณธ์ธ KEY";
  var client_secret = "๋ณธ์ธ secret";

  var url = "https://openapi.naver.com/v1/search/blog.json?query="์‹œ๊ทธ๋‹ˆ์ฒ˜๊ฐ’"&display=100&sort=date"

  var response = UrlFetchApp.fetch(url,{'method' : 'GET',
        'headers': {                    
          'X-Naver-Client-Id' : client_key,
          'X-Naver-Client-Secret' : client_secret
        }
    }); 
  
  var resData = response.getContentText();
  resData = JSON.parse(resData);

  
  var arrInfo = new Array();
  var arrTitle = new Array();
  var arrLink = new Array();
  var arrContent = new Array();
  var arrDate = new Array();

  for(var i = 0 ; i <resData.total; i ++ )
  {
    if(resData.items[i].bloggerlink.indexOf("odaily") != -1)
    {
      arrTitle.push(resData.items[i].title);
      arrLink.push(resData.items[i].link);
      arrContent.push(replaceTitle(resData.items[i].description));
      arrDate.push(resData.items[i].postdate);
    }
  }

  arrInfo.push(arrTitle);
  arrInfo.push(arrLink);
  arrInfo.push(arrContent);
  arrInfo.push(arrDate);

  var transposed = Array.from({ length: arrTitle.length }, () => new Array().fill(0)) 

  for (var o=0; o< arrInfo.length; o++) {
     for (var v=0; v<arrInfo[0].length; v++) { 
        [transposed[v][o]] = [arrInfo[o][v]];
    }
  }

  return transposed;
}

 

์œ„์™€ ๊ฐ™์ด ํ•  ๊ฒฝ์šฐ ๊ณต๊ฐœ๋œ ๋‚˜์˜ ๋ธ”๋กœ๊ทธ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ๊ธ€์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์— ๋ถˆ๋Ÿฌ์™€ ๋ณธ ๋ฆฌ์ŠคํŠธ๋ฅผ ์บก์ณํ•˜์—ฌ ์ „๋‹ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด๋Œ€๋กœ TITLE๊ณผ URL ์ •๋ณด๋Š” ์ค€๋น„๊ฐ€ ๋‹ค ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.google app script๋กœ๋„ ์›น์ด ์ œ์–ด๊ฐ€ ๋˜๋Š”์ง€ ํ™•์ธํ•ด๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๊ฑธ ๊ณ ๋ฏผํ•˜๋Š” ์ด์œ ๋Š” python์—์„œ ์‚ฌ์šฉํ•˜๋Š” selenium ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์Šคํฌ๋ฆฝํŠธ ํ˜•ํƒœ๋กœ ์งœ์—ฌ์ง„ ๊ฑฐ๋ผ๋Š” ์–˜๊ธฐ๊ฐ€ ์žˆ์–ด์„œ ์ž…๋‹ˆ๋‹ค.๋ง‰์—ฐํ•˜๊ฒŒ ์ƒ๊ฐ๋งŒ ํ•˜๊ณ  ์žˆ์ง€๋งŒ,  ์‘์šฉ๋‹จ์„ ๊ฑด๋“œ๋ฆฌ๋Š” ๋ถ€๋ถ„์ด ์žˆ์„์ง€, ์›น์—์„œ๋งŒ ๊ตฌ๋™์ด ๋˜๋Š”๊ฑด์ง€ ์ข€ ๋” ๊ณ ๋ฏผํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๋ณด๋“œ๋Š” ๋” ๋งŽ์ด ๊ณต๋ถ€ํ•˜๊ณ  ์ฐพ์•„ ๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

[์นด์นด์˜ค๋ทฐ] ๋ณด๋“œ ์ž๋™ ๋ฐœํ–‰ 2๋‹จ๊ณ„. ๊ตฌ๊ธ€ ์•ฑ ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณธ์ธ ํ‹ฐ์Šคํ† ๋ฆฌ ํฌ์ŠคํŒ… ๊ธ€ ๊ฐ€์ ธ์˜ค๊ธฐ(OPEN API)

๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ค„ ์•„๋Š” ๋ถ„์ด๋ฉด ๋ˆ„๊ตฌ๋‚˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! 1๋‹จ๊ณ„. ํ‹ฐ์Šคํ† ๋ฆฌ API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์•ฑ์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ํ‹ฐ์Šคํ† ๋ฆฌ API ์•ฑ ๋“ฑ๋ก ์‚ฌ์ดํŠธ : https://www.tistory.com/guide/api/manage/regist

odaily.tistory.com

 

๋Œ“๊ธ€