GAS로 네이버 키워드 크롤링하고 구글 스프레드시트에 저장
19653 단어 GoogleAppsScriptgas
TL;DR
우리는 원하는 키워드를 (예 : 배달)의 네이버 검색 결과를 구글 스프레드 시트에 저장하는 방법을 기록했습니다.
GAS (Google Apps Script) 사용 (무료 + 서버리스)
How To
구글 스프레드시트
도구 > 스크립트 편집기
Google 스크립트
리소스 > 라이브러리 > 제목없는 프로젝트 > Add a library 입력 후 추가 > Parser 사용 > 저장
Add a library :
M1lugvAXKKtUxn_vdAG9JZleS6DrsjUUV
Parser 버전 8 선택, Development mode 사용코드 입력 후 저장
코드.gs
function myFunction() {
// request
var keyword = '배달';
var url = "https://m.search.naver.com/search.naver?where=m_news&sm=mtb_jum&query=" + keyword;
var options = {
'method': 'GET',
'muteHttpExceptions': true,
}
// 네이버에 요청하기
var response = UrlFetchApp.fetch(url, options);
var html = response.getContentText('UTF-8');
// 제목, 링크, 언론사, 날짜 : 15개 결과 나옴
var subject = Parser.data(html).from('<div class="api_txt_lines tit">').to('</div>').iterate();
var link = Parser.data(html).from('<div class="dsc_wrap">').to('class=').iterate();
var press = Parser.data(html).from('default_press\'"></span>').to('<').iterate();
var date = Parser.data(html).from('</a><span class="info">').to('<').iterate();
// subject
var subjectArray = [];
for (i = 0; i < subject.length; i++) {
// 1차 가공
subject[i] = subject[i].replace('</b>', '').replace('<b class="hl">', '').replace(/"/g, '').replace(/"/g, '').replace(/>/g, '');
// 2차 가공
subject[i] = subject[i].replace(/(<([^>]+)>)/ig, "");
subjectArray.push(subject[i]);
}
// link
var linkArray = [];
for (i = 0; i < link.length; i++) {
link[i] = link[i].replace('<a href=', '').replace(/"/g, '').trim();
linkArray.push(link[i]);
}
// press
var pressArray = [];
for (i = 0; i < press.length; i++) {
press[i] = press[i].replace('</span>', '').replace('<', '').replace('>', '').replace(/"/g, '').replace(/"/g, '').replace(/>/g, '');
pressArray.push(press[i]);
}
// date
var dateArray = [];
for (i = 0; i < date.length; i++) {
date[i] = date[i].replace('</span>', '').replace('<', '').replace('>', '').replace(/"/g, '').replace(/"/g, '').replace(/>/g, '');
dateArray.push(date[i]);
}
// 스프레드시트 시작
var sheet = SpreadsheetApp.getActiveSheet();
// 시트 클린
sheet.clear();
// row, col
// A1,B1,C1,D1 고정한다.
sheet.getRange(1, 1).setValue('링크'); // 1행,1열
sheet.getRange(1, 2).setValue('제목');
sheet.getRange(1, 3).setValue('언론사');
sheet.getRange(1, 4).setValue('날짜');
// 링크값 길이로 루프를 돌린다.
for (i = 0; i < linkArray.length; i++) {
row_list = [linkArray[i], subjectArray[i], pressArray[i], dateArray[i]]; // 링크, 제목, 언론사, 날짜
// 시트에 넣기
sheet.appendRow(row_list);
}
}
코드 실행
실행 > 함수 실행 > myFunction > 권한 검토 > 확인되지 않은 앱 > 고급 > 제목없는 프로젝트로 이동(안전하지 않음) > 허용
Running function myFunction
약 5초 내외로 동작되요. > 스프레드시트 확인Reference
이 문제에 관하여(GAS로 네이버 키워드 크롤링하고 구글 스프레드시트에 저장), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/leechungkyu/items/0fc4bcced6cc8ed421a2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)