마케터 야근 줄이기 프로젝트 1 ( 네이버 검색 광고 결과 가져오기)
왜, 마케터는 야근을 하는지 참 궁금했습니다. 마케터가 되어 보니 어느 정도 이유를 알 거 같더군요 . 하지만 코드를 아는 이상 수동으로 하는 반복 작업에 계속 당할 수는 없었습니다. 그래서 오늘은 마케터의 야근 줄이기 프로젝트, 첫 번째 시간을 가져보려고 합니다.
첫 번째 코드는 네이버 키워드 검색 시 검색 광고 영역의 광고 순위를 확인할 수 있는 도구입니다. 보통 이 순위를 매번 확인하지는 않는데요. 네이버 대시보드 특성 상 데이터의 반영이 느립니다. 즉 실시간으로 확인하기 어려운 경우가 많죠.
이때 핵심 키워드에 대해서는 실시간으로 바뀌는 순위에 대응할 필요가 있는데요. 이때 여러 키워드를 한 번에 실시간으로 순위를 가져오는 프로그램을 만들었습니다.
내가 필요한 키워드를 넣고, 프로그램을 실행하면, 해당 키워드에 대한 PC, MO 검색 광고 키워드를 확인할 수 있습니다.
만약 사이트가 블로그거나, 네이버 카페일 경우, 검색 광고 지면이 첫 번째로 노출되지 않는 키워드의 경우 제대로 결과가 나오지 않을 수 있습니다만..문제를 알고 있으니 고쳐보도록 노력하겠습니다..ㅎ
import axios from 'axios';
import * as cheerio from 'cheerio';
// 네이버 검색 결과 URL
// 원하는 키워드를 []에 '키워드1', '키워드2'의 형식으로 넣어주세요.
const keywords = [];
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
const start = async (url) => {
for (const keyword of keywords) {
axios
.get(`${url}${keyword}`)
.then((response) => {
const html = response.data;
const $ = cheerio.load(html);
let searchResult = ``;
// class="site"인 태그의 텍스트 값을 추출
$('.site').each((index, element) => {
const company = $(element).text();
searchResult += `${index + 1}. ${company}\n`;
});
console.log(`${url === 'PC' ? 'PC' : 'MO'} [${keyword}]`);
console.log(`${searchResult}`);
})
.catch((error) => {
console.error('Error fetching data:', error);
});
await sleep(700);
}
};
start(`https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=`);
start(`https://m.ad.search.naver.com/search.naver?where=m_expd&query=`);
위 코드를 그대로 vscode에 복붙하면 바로 라이브가..가능하지 않습니다. 우선 이 글을 읽는 유저의 노트북에 (window 기준) node.js와 vscode, git bash가 깔려 있어야 합니다. 그래야 node.js 를 통해 해당 코드를 실행시킬 수 있습니다. 이 부분은 꼭, 추후에 업로드 하겠습니다.
그리고 node.js 를 깔면 같이 깔리는 npm으로 axios와 cheerio를 같이 다운 받아 주어야 합니다. 이를 도와 주는 것이 git bash라는 친구로 리눅스 환경에서 bash shell 을 사용할 수 있도록 합니다.
부족한 게 많지만 version 1 으로 생각하고 하나씩 올려 보도록 하겠습니다. 감사합니다.