movee(モビー) オノデラのブログ

(株)movee代表。週末は自社サービスを作っています。

NewsAPIで福岡市のニュースを収集するページを作ってみた

https://newsapi.org/はNews APIは世界中の30,000を超えるソースから、トップ見出し、ニュース内容、ソース情報を取得可能なAPIらしく、無料開発用ライセンスがあるので使ってみました。(1,000リクエスト/日の制限あり)。

curl 'https://newsapi.org/v2/everything?q=福岡市&searchIn=title&sortBy=publishedAt&apiKey=xxxxxxx'

NewsAPI

こんな感じで取得できるが、取得したデータの中には意外に出会い系や婚活系のニュースが含まれていたり、タイトルの最後に'wwww 'が付くような煽りっぽい記事も結構あったのでこの辺は除外したいが、防止するクエリパラメーターもなさそう。これはNewsAPIの仕様上、どうしようもないので一旦福岡市などで取得したのちにフィルタリングすればできそう。 あと、記事データを眺めていると、あまり好ましくない記事をポストしてる会社も大体わかったのでその著者も除外したい。

ということで対応してみた。 データを取得した後、タイトルに婚活か、wwが含まれている記事は除外。著者がxxx、yyyの記事は除外(除外対象にした著者名は仮で書いておきます)するフィルターをかけて、1つずつ記事を精査。 どちらかが該当した場合は公開対象から外しました。

const filteredData = fukuokaNewsData.filter((data:any) => {
      const isUnwantedTitle = data.title.includes('婚活') || data.title.includes('ww');
      const isUnwantedAuthor = data.author === 'xxx' || data.author === 'yyy';
      return !(isUnwantedTitle || isUnwantedAuthor);
    });

結果、いい感じにとれた。

NewsAPI

NewsAPIは非商用利用であれば無料というテキストを見たので、何かしら無料のサービスを作ろうかと思ったけど、念のためNewAPIサイトで本当に無料で使えるかを確認しました。「よくある質問」のページです。

・開発者プランではどのような使用が許可されますか?

・開発者プランは、開発環境での開発およびテストにのみ使用でき、ステージング環境または運用環境 (内部を含む) では使用できません。API が開発環境の外で使用される場合、API を引き続き使用するには、サブスクリプションのいずれかにアップグレードする必要があります。

Pricing - News API

うーん、どうやら公開する時点でダメっぽい(もしくはAPI側でできないようにしているのかも)。非商用サービスの公開ならOKかなと思っていたけど、ローカル環境じゃないとfreeプランは使えない。freeプランの次がbusinessプランで449ドル。本日時点の円ドル為替だと66344.24円。高い!商用利用目的があるならまだしも、非商用でしか考えていない僕としては、月額6万オーバーはコスパがすこぶる良くない。 コストがかかりすぎてるため残念だけど、NewsAPIを使ったサービス開発は断念しようと思います。とはいえ、簡単に取得できるし、著者の中には著名な出版社や新聞社も入っているため記事の質もそれなりに良いなと思いました。キーワードに沿った記事を集めたまとめサイトとか面白そうだなと思ってました。