スプレッドシートでスクレイピングを使ったニュース記事の自動化

はじめに

現在、情報の流れは非常に速く、最新のニュースを取得し記事にするのは大変な作業です。しかし、Googleスプレッドシートとスクレイピング技術を組み合わせることで、これらの作業を自動化することができます。ここでは、ヤフーニュースのタイトルをスクレイピングしてスプレッドシートに取得し、それを基にワードプレスの記事を作成する方法を紹介します。

1. スプレッドシートの準備

まず、Googleスプレッドシートを開き、新しいシートを作成します。このシートには、スクレイピング結果を格納するための列を用意します。例えば、以下のような列を作成します。

  • A列: タイトル
  • B列: URL

2. スクリプトの作成

スプレッドシート内でスクリプトを作成するために、メニューから「拡張機能」>「Apps Script」を選択します。新しいプロジェクトが開きます。

3. スクリプトの記述

以下のスクリプトをコピーして、Apps Scriptエディタに貼り付けます。このスクリプトは、ヤフーニュースのページからタイトルとURLを抽出します。

function scrapeYahooNews() {
  var url = 'https://news.yahoo.co.jp/';
  var response = UrlFetchApp.fetch(url);
  var html = response.getContentText();

  // ページ内のニュースタイトルとURLを抽出
  var titles = html.match(/<h3 class="sc-1m2tg68-0 cMZsPf"><a href="([^"]+)">([^<]+)<\/a>/g);
  if (titles) {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    sheet.clear(); // シートをクリア

    // タイトルとURLをスプレッドシートに書き込む
    for (var i = 0; i < titles.length; i++) {
      var match = titles[i].match(/<h3 class="sc-1m2tg68-0 cMZsPf"><a href="([^"]+)">([^<]+)<\/a>/);
      if (match) {
        var url = match[1];
        var title = match[2];
        sheet.appendRow([title, url]);
      }
    }
  }
}

4. スクリプトの実行

スクリプトを保存した後、メニューから「実行」>「scrapeYahooNews」を選択してスクリプトを実行します。最初に実行する際は、Googleアカウントの認証が求められますので、必要な権限を許可してください。

5. 結果の確認

スクリプトが正常に実行されると、スプレッドシートのA列とB列にヤフーニュースのタイトルとURLが表示されます。

6. ワードプレスへの転載

スプレッドシートから抽出した情報をワードプレスの記事に転載するには、以下の手順を踏みます。

  1. スプレッドシートからデータをコピーします。
  2. ワードプレスの管理画面にログインし、新しい記事を作成します。
  3. コピーしたデータを記事本文に貼り付けます。
  4. 記事を公開します。

簡単な裏技2つ

  1. スケジュール設定: スプレッドシートのスクレイピングを定期的に実行するには、Google Apps Scriptのトリガー機能を使用します。メニューから「編集」>「現在のプロジェクトのトリガー」を選択し、新しいトリガーを作成します。ここでは、特定の時間にスクリプトを実行するように設定できます。例えば、毎日午前9時に実行するように設定すると、毎日最新のニュースが自動的に取得されます。
  2. 複数のニュースサイトからのスクレイピング: 1つのスクリプトで複数のニュースサイトから情報を取得することも可能です。スクリプトを修正して、複数のURLからデータを抽出し、スプレッドシートにまとめるようにします。例えば、ヤフーニュースとGoogleニュースからタイトルとURLを取得するように修正します。javascriptfunction scrapeMultipleNewsSites() { var urls = [ 'https://news.yahoo.co.jp/', 'https://news.google.com/' ]; var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); sheet.clear(); // シートをクリア for (var i = 0; i < urls.length; i++) { var url = urls[i]; var response = UrlFetchApp.fetch(url); var html = response.getContentText(); // ページ内のニュースタイトルとURLを抽出 var titles = html.match(/<h3 class="sc-1m2tg68-0 cMZsPf"><a href="([^"]+)">([^<]+)<\/a>/g); if (titles) { for (var j = 0; j < titles.length; j++) { var match = titles[j].match(/<h3 class="sc-1m2tg68-0 cMZsPf"><a href="([^"]+)">([^<]+)<\/a>/); if (match) { var url = match[1]; var title = match[2]; sheet.appendRow([title, url]); } } } } }

以上が、スプレッドシートでスクレイピングを行い、ヤフーのニュースのタイトルを抽出してワードプレスの記事に転載する方法と、簡単な裏技2つです。これで、最新のニュースを簡単に取得して記事にすることができます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA