[GAS] 야후에서 검색한 결과를 메일로 보내는 방법.
16790 단어 GASGoogle Spreadsheettech
개시하다
이 기사는 생산성 향상을 위해 GAS를 활용해 우편으로 쓰레기 처리 결과를 보내고자 하는 이들을 겨냥한 기사다.
표준 기능의 소개가 아니라 개인이 만든 스크립트의 공유이기 때문에 실시 방법의 참고가 되었으면 좋겠습니다!
설치 방법
실행할 코드
function sendMail() {
const arr = search("React.js OR Next.js");
const mailAddress = Session.getActiveUser().getUserLoginId();
let body = "<h1>React.js関連情報</h1>";
body += arr
.map((item) => {
return `<p><a href="${item.url}" alt="data">${item.title}</a></p>`;
})
.join("");
MailApp.sendEmail({
to: mailAddress,
subject: "React.js関連情報",
htmlBody: body,
});
}
이번에 만든 함수
함수 바디
function search(word, option = {}) {
let result = [];
const defaultOption = {
x: "wrt",
aq: -1,
ai: "",
ei: "UTF-8",
vd: "w",
pages: 2,
};
const baseOption = { ...defaultOption, ...option };
const param = Object.keys(baseOption)
.map((key) => {
return `${key}=${encodeURI(baseOption[key])}`;
})
.join("&");
const pageCount = baseOption.pages;
const linkRegexp = /<a href=\"(.*?) .*?ping.*?>.*?<\/a>/gm;
const urlRegexp = /href=\"(.*?)\"/;
const titleRegexp = /<a .*?>(.*?)<\/a>/;
[...new Array(pageCount)].forEach((value, index) => {
try {
const searchUrl =
"https://search.yahoo.co.jp/search?p=" +
encodeURI(word) +
"&" +
param +
"&b=" +
(index * 10 + 1);
const response = UrlFetchApp.fetch(searchUrl);
const elems = response.getContentText().match(linkRegexp);
elems.forEach((elem) => {
const url = elem.match(urlRegexp)[1];
if (url === "https://www.yahoo.co.jp") return;
const title = elem.match(titleRegexp)[1];
result.push({
url: url,
title: title
.replaceAll("<b>", "")
.replaceAll("</b>", "")
.replaceAll("<br>", ""),
});
});
} catch (e) {
Logger.log("NG count: " + index);
}
});
return result;
}
최후
이번에 소개한 함수를 사용하여 조금이라도 여러분의 업무 효율과 연결할 수 있기를 바랍니다. 사용한 소감을 말씀해 주시면 기쁩니다!
그리고 팩스와 대체 방법이 있으면 알려주세요.
끝까지 졸렬한 글이지만 함께 해주셔서 감사합니다.
참고 문장
GAS 실행 사용자의 메일 주소 (Google 계정) 를 가져오는 방법
GAS에서 지정된 URL에 요청하여 롤업을 시도합니다.
Reference
이 문제에 관하여([GAS] 야후에서 검색한 결과를 메일로 보내는 방법.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/cti1650/articles/gas_send_email_with_search_results텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)