|
|
2行目: |
2行目: |
|
| |
|
| スプレッドシートを用いると、画像取得の手間を省略することができる可能性がある。 | | スプレッドシートを用いると、画像取得の手間を省略することができる可能性がある。 |
|
| |
| Googleスプレッドシートを使用して、各行のA列にある検索キーワードに応じて、B列に画像を表示し、C列に画像URLを表示する方法を以下に示します。
| |
|
| |
| スクリプトエディタを開きます。
| |
|
| |
| 次のスクリプトをコピーして貼り付けます。
| |
|
| |
| <nowiki>function fetchImages() {
| |
| var sheet = SpreadsheetApp.getActiveSheet();
| |
| var startRow = 2; // A列に検索キーワードが含まれている最初の行を指定
| |
| var numRows = sheet.getLastRow() - 1; // 行の数を取得
| |
| var dataRange = sheet.getRange(startRow, 1, numRows, 1); // A列の範囲を取得
| |
| var keywordData = dataRange.getValues(); // A列の値を配列に取得
| |
|
| |
| for (var i = 0; i < keywordData.length; i++) {
| |
| var keyword = keywordData[i][0];
| |
| var searchUrl = 'https://www.google.com/search?q=' + keyword + '&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwi7sO2I1MnxAhULyDgGHQa_Cj8QsAQILA&biw=1366&bih=657';
| |
| var response = UrlFetchApp.fetch(searchUrl); // Google画像検索のページを取得
| |
| var html = response.getContentText(); // ページのHTMLコンテンツを取得
| |
| var imageUrl = getFirstImageUrl(html); // HTMLから画像URLを取得
| |
| sheet.getRange(startRow + i, 2).setValue(imageUrl); // B列に画像URLを表示
| |
| sheet.getRange(startRow + i, 3).setValue(searchUrl); // C列に画像URLを表示
| |
| }
| |
| }
| |
|
| |
| function getFirstImageUrl(html) {
| |
| var regex = /"ou":"([^"]+)"/; // 画像URLを取得する正規表現
| |
| var match = regex.exec(html); // 正規表現を使用してHTMLから最初の画像URLを取得
| |
| if (match) {
| |
| return match[1]; // 画像URLを返す
| |
| } else {
| |
| return null; // 画像URLが見つからない場合はnullを返す
| |
| }
| |
| }</nowiki>
| |
|
| |
| スクリプトを保存して、スクリプトエディタを閉じます。
| |
|
| |
| スプレッドシートを再度開き、A列に検索キーワードが含まれている最初の行を指定します。データが含まれる最後の行までの行の数を取得します。
| |
|
| |
| ツールバーの「マクロ」をクリックし、「fetchImages」という名前のマクロを実行します。
| |
|
| |
| マクロが完了すると、B列には各行の検索キーワードに対応する画像が表示され、C列には各画像のURLが表示されます。
| |