Как я могу автоматически заполнить ячейку в Google Sheets изображением со страницы Pinterest? - PullRequest
1 голос
/ 18 февраля 2020

Допустим, у меня есть лист Google с URL-адресами для отдельных пинов на Pinterest в столбце B. Например: https://www.pinterest.com/pin/146578162860144581/

Я хочу заполнить ячейки в столбце C с основным изображением из URL в столбце B.

В настоящее время я должен сделать это вручную, щелкнув URL-адрес в столбце B, скопировать URL-адрес изображения и вставить изображение в ячейку в столбце * 1012. *.

Есть ли способ автоматизировать это?

1 Ответ

0 голосов
/ 19 февраля 2020

Решение

Да, вы можете добиться этого с помощью Google Apps Script. Под следующим фрагментом кода вы можете найти краткое объяснение того, как это работает.

Код

function populateImage() {  
  var sheet = SpreadsheetApp.getActiveSheet();
  // Get cell values of your link column
  var values = sheet.getRange('B1:B5').getValues();
  // Range where we want to insert the images
  var imgrange = sheet.getRange('C1:C5');
  
  for (i=0;i<5;i++){
    // Cell we want to insert the image
    var cell = imgrange.getCell(i+1, 1);
    
    // Pin Id which is at the end of each url provided, in this case 146578162860144581
    var number = values[i][0].substring(29,values[i][0].length-1);
    
    // Url to make the fetch request to access the json of that pin
    var url = 'https://widgets.pinterest.com/v3/pidgets/pins/info/?pin_ids='+number;
    var response = UrlFetchApp.fetch(url);
    var json = response.getContentText();
    var data =  JSON.parse(json);
    
    // Url of the image of the pin
    var imgurl =data.data[0].images["237x"].url;

    // Insert image from url
    cell.setFormula('=image("'+imgurl+'")');
  }

}

Результат

image showing the results of this piece of code

Объяснение

Чтобы вставить изображение в На сайте в вашем листе вам понадобится изображение URL. Это самая сложная часть в этом выпуске. Pinterest не предоставляет хороший способ получить этот URL-адрес изображения, просто извлекая его в URL-адрес пин-кода, поскольку этот запрос вернет данные HTML, а не json. Для этого вам нужно сделать запрос на получение этого URL https://widgets.pinterest.com/v3/pidgets/pins/info/?pin_ids=PINIDNUMBER. Вы можете найти больше информации об этом в этом вопросе переполнения стека , кредит идет на @SambhavSharma.

Когда вы выбираете следующий URL, вы получите пин-код json, из которого вы можете получить желаемый URL изображения (помимо многих других данных об этом пин-коде). С его помощью вы можете просто вставить его в следующий столбец.

Надеюсь, это помогло вам, дайте мне знать, если вам нужно что-то еще или вы чего-то не поняли.

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