【GAS】Spreadsheet에 기재된 URL의 사이트에, 특정의 배너 화상이 있는지 Google Apps Script로 확인한다

손님이 「Spreadsheet에 있는 URL 리스트의 천이처에, 특정의 배너 화상이 있는지 하나하나 확인하고 있다」라고 말하고 있었으므로 「그것은 아칸」이 되어 만들어 보았습니다.
엑셀로 하면 여러가지 사정은 좋지만, 미워 맥 유저이므로 VBS 움직이지 않고・・・
Spreadsheet에 원래 기재되어 있고 그대로 GAS로 해 보겠습니다.

Spreadsheet 준비



이런 느낌

이번에는
1. G열 URL 앞으로 비행
2. I열의 배너 종류를 바탕으로, 배너의 존재 체크를 실시한다
3. 배너 종류대로 붙여져 있던 경우는 H열에 ◯를, 그렇지 않은 경우는 ×를 기재
라는 흐름이 됩니다.
배너는 A와 B의 두 종류가 있으며, 둘 다 붙일 수 있습니다.

스크립트 등록



즉시 스크립트를 등록합니다.
메뉴 도구 > 스크립트를 엽니다.


내용은 이런 느낌

function myFunction() {
  // シート情報にアクセスできるようにします
  var sheet=SpreadsheetApp.getActiveSheet();
  // 最後の行数を取得します
  var rowcount = sheet.getLastRow();
  // 開始行から最終行までまわします
  for(var i=7; i<rowcount+1; i++){
    // G列のURLを取得します
    url = sheet.getRange(i,7).getValue();
    // I列のバナー種別を取得します
    status = sheet.getRange(i,9).getValue();
    // バナーの存在チェックをします
    result = check_url(url,status);
    if(result){
      // 想定通りならH列に◯を
      sheet.getRange(i,8).setValue('');
    } else {
      // 想定と違ったら×を
      sheet.getRange(i,8).setValue('');
    }
  }
}

function check_url(url,status) {
    // URL先のHTML情報を取得します
   html = get_html(url);
    a = false;
    b = false;
    // 取得したHTMLの中に、指定されたバナーがあるか確認します
    if(status == '両方'){
      if (html.match(/https:\/\/hogehoge\/assets\/img\/user\/link\//)) {
        a = true;
      }
      if (html.match(/https:\/\/pupupupu\/assets\/img\/user\/link\//)) {
        b = true;
      }
      if((a) && (b)){
        return true;
      }
    }else if(status == 'Aのみ'){
      if (html.match(/https:\/\/hogehoge\/assets\/img\/user\/link\//)) {
        return true;
      }
    }else if(status == 'B'){
      if (html.match(/https:\/\/pupupupu\/assets\/img\/user\/link\//)) {
        return true;
      }
    }else{
      return false;
    }
}

function get_html(url) {
  try{
    var response = UrlFetchApp.fetch(url).getContentText();
    return response
  }catch(e){
    return '';
  }
}

어리석게 써 버렸기 때문에 상수 등을 사용하지 않지만
그리고는 화면의 실행 마크를 누르면

주의점



・무한 루프해 버린 경우는?



htps : // sc pt. 오, ぇ. 코 m / 칭찬 / 아 l
여기에 액세스하면 자신이 만든 스크립트의 상태를 볼 수 있습니다.
htps : // sc pt. 오, ぇ. 코 m / 호메 / 에 쿠치 온 s
여기에서 해당 처리의 설정 버튼을 클릭하여 종료합시다.

· 타임 아웃했습니다.



GAS는 5분 이상 실행할 수 없습니다!

그렇다고 해서, 처음의 GAS였지만, 간단하게 Spreadsheet를 조작할 수 있었습니다.
URL이 점점 늘어나면 5 분에 멈추지 않기 때문에 괴롭습니다.
(Excel 좋구나・・・)

좋은 웹페이지 즐겨찾기