Используйте GAS для получения URL, затем сделайте снимок экрана (или конвертируйте HTML в PDF / JPG) - PullRequest
1 голос
/ 16 января 2020

Моя цель

Короче говоря, я пытаюсь создать сценарий, который посещает список URL-адресов и делает снимок экрана с содержимым URL-адреса. Для контекста, моя цель состоит в том, чтобы сохранить снимок, показывающий, что изображение размещено на бесплатных сайтах с фотографиями (например, pexels.com и unspla sh .com).

Мой код пока что

Вот то, что у меня пока есть:

function stockDatabasePDF(){
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheetByName('stock db');

      //make the pdf from the sheet
    var data = sheet.getRange('A2:A').getValues(); //these are your URLs to check

    for ( var i = 0; i < data.length; i++ ) {       
      if ( data[i][0] !== "" ) { //this means if your data (urls) are NOT blank

      var theurl = data[i][0];

      var token = ScriptApp.getOAuthToken();
      var docurl = UrlFetchApp.fetch(theurl, { headers: { 'Authorization': 'Bearer ' +  token } });
      var pdf = docurl.getBlob().setName('name').getAs('application/pdf');


      }
      //save the file to folder on Drive
    var fid = '1eHvWjIYyOeB9MQDwovzyXxx8CEIK5aOt';
    var folder = DriveApp.getFolderById(fid);
    var pdfs = folder.createFile(pdf).getUrl(); //both creates the file and copies the url
      }
 }

Просто к сведению ... Что находится в диапазоне A2: A - это URL-адреса фондовых сайтов с фотографиями, например:

  1. https://www.pexels.com/photo/person-riding-brown-horse-3490257/
  2. https://unsplash.com/photos/Cz_SNZZyHgI

Проблема

Этот скрипт ПОЧТИ работает. Но это сталкивается с одной из двух проблем:

  1. Я получаю код ответа 403 (запрещенный запрос)
  2. Снимок экрана снимается, но нет изображений / css / et c. Включено. Вот пример этого

To Close

Любая помощь здесь будет принята с благодарностью. Пожалуйста, дайте мне знать, если я что-то пропустил или у кого-то есть вопросы. Спасибо всем!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...