dtn.jpトップページのニュース記事

先日、Bing News Search APIを使ってdtn.jpのトップページにニュース記事を表示してみた話をご紹介しました。

BingのWeb Search API v7に用意されているNews Search APIを使い、ニュース記事をカテゴリ別に取得して表示していますが、最新ニュース記事を無料でAPIをつかって取得できるのでとても重宝しています。

ニュース記事のリンクが壊れる

ところが、サイトに表示されたニュース記事を見てみようとリンク先に進んでみたところ、MSNニュースのエラーページが表示されておりました。

Bing News Search APIのリンクが壊れている
MSNニュースのエラー画面が表示された

どうやら、ほとんどのニュース記事のリンク先がこのパターンとなっており、どうやらリンクが壊れてしまっているようでした。

とはいえ、ニュース記事のタイトルは正確に表示されているので、APIからは普通にjsonのレスポンスが取れているようなので、とりあえずテストプログラムを作ってJSONデータをチェックしてみることにしました。

jsonのレスポンスデータは壊れていない

テストプログラムで取得したjsonデータから記事タイトル、URLを配列で取り出してみると、特に壊れてはいないようです。となると、サイトで表示するためにMySQLに一旦データを貯めるあたりで壊れたということのようです。

下画像の長々しいURL文字列とMySQLのINSERTで壊れたというあたりで原因が分かった方は多いと思いますが、そうです、INSERTするテーブルのカラムの文字数制限を超えてしまっていたので、URLがきちんと保存できていなかったということが原因でした。

Bing News Search APIでのJSONレスポンスデータは問題ない
JSONの生データのURLはきちんと表示されていた

ニュース記事のリンク先URLが変化した

2020年12月のレスポンスデータ

Bing News Search APIをを使ってニュース情報を取得し始めた先月のレスポンスデータをみると、ニュース記事は各メディアのサイトURLをそのまま返していたので、URL文字列は長くても100文字程度で収まってくれていました。

R東日本とKDDI、品川開発プロジェクトをコアとした新たな分散型 …
https://www.excite.co.jp/news/article/DigitalShiftTimes_FN201216_3/

36歳バースデーの平愛梨、夫・長友佑都からのサプライズ …
https://nlab.itmedia.co.jp/nl/articles/2012/16/news078.html

2020年12月のAPIレスポンスのニュース記事タイトル・URL

2021年1月のレスポンスデータ

エラーとなっていた直近のニュース情報のデータをみると、URLはどれもmsn.comを経由して各メディアのニュース記事を表示するといった形に変更されており、恐ろしく長いURL文字列に変化をしていました。

【共通テスト速報】作問担当者「難化したと見えるかも」
https://www.msn.com/ja-jp/news/national/e3-80-90-e5-85-b1-e9-80-9a-e3-83-86-e3-82-b9-e3-83-88-e9-80-9f-e5-a0-b1-e3-80-91-e4-bd-9c-e5-95-8f-e6-8b-85-e5-bd-93-e8-80-85-e3-80-8c-e9-9b-a3-e5-8c-96-e3-81-97-e3-81-9f-e3-81-a8-e8-a6-8b-e3-81-88-e3-82-8b-e3-81-8b

石原プロの58年に“完”裕次郎さん仏前に商号返還…舘「おもちゃ箱のようだった」
https://www.msn.com/ja-jp/news/entertainment/%E7%9F%B3%E5%8E%9F%E3%83%97%E3%83%AD%E3%81%AE%EF%BC%95%EF%BC%98%E5%B9%B4%E3%81%AB-%E5%AE%8C-%E8%A3%95%E6%AC%A1%E9%83%8E%E3%81%95%E3%82%93%E4%BB%8F%E5%89%8D%E3%81%AB%E5%95%86%E5%8F%B7%E8%BF%94%E9%82%84-%E8%88%98

2021年1月のAPIレスポンスのニュース記事タイトル・URL

どうやら、Bing News Search APIで提供するニュース情報も、しっかりmsn.comのニュースページを経由して表示するように仕様を変更していたようです。下画像のようなYahooニュースと同じようなつくりになったということのようです。

APIのレスポンスはmsnニュースのURLとなった
読売新聞の記事をmsnニュースで表示

テーブルのデータを見てみると、どうやら先週頃に突然仕様が変更になっていたみたいです。

URL用のカラムがvarchar(255)

一方、このニュース情報保管用に作ったテーブルをみると、記事URL用に設定したカラムはvarchar(255)で設定していたため、以前のような100文字行かない程度のURLであればうまく収まってくれていたようですが、255文字を超えるような長々しいURLばかりとなってしまったので、尻切れになってしまっていたということのようです。

なんとも情けない原因でお恥ずかしい限りです。カラムの文字制限数を増やしてあっさり解決することができました。

おわりに

ということで、無事にdtn.jpトップページのニュースも正常に戻すことができました。

メディアからニュースデータは買ってるはずなのに、Bing News Search APIでは自分のサイトも経由せずにメディアサイトの直リンクを提供しているので凄いとは思っていましたが、単にAPIを提供しているチームが細かいことを特に気にしてなかっただけだったということなのかもしれないです。

ABOUT dtn.jp

この運営ブログをみてdtn.jpの運営サイトに興味をお持ちになった方は下記のリンク集からサイトをご参照ください。PHP・SQL・JS・HTML・CSSや様々なAPIでゼロから立ち上げたサイトを複数運営しています。

dtn.jp関連サイト

  • ディレクトリ型検索エンジンdtn大手サイトは全てサービスを終了し、中小でも運営を継続するところがほとんどなくなってしまったディレクトリ型検索エンジンを2002年から細々運営しており、未だに細かい機能改修も行っております。申請されたサイトは実際に訪問して細かく確認をしているので登録までかなりお時間いただきます。
  • 猫ネコサーチエンジン猫・ペットサイト専用のディレクトリ型検索エンジンです。登録サイトはサイトのスクリーンショット付きでカテゴリに掲載しています。
  • 画像掲示板の泉画像やYouTubeやニコニコ動画が貼り付け可能な匿名画像掲示板です。27ジャンルに分かれた掲示板に、それぞれ100スレッドまで立てることが可能です。
  • ツイータンTwitter APIを使って10分おきに収集したTwitter(ツイッター)のトレンドワードや人気ハッシュタグデータを月別に集計してランキング形式で公開しています。
  • Keyword Tool++Yahoo APIや楽天サイトのデータを日次で収集したデータを元に、EC系キーワードをラインキング形式でご紹介しています。各ワードは検索ボリュームや関連語、24か月の検索ボリュームトレンドを確認も可能です。
  • 消費者金融の泉カードローン商品を取り扱う金融業者を一覧で比較可能としたサイトです。カテゴリ別、人気度別、限度額別、金利別に比較可能なサイトにしています。
  • TrendinGファッションモールに出店するブランドをアイテムヒット率でランキングとしたサイトです。まだβ版です。

各サイトの開発方法などについて

各サイトの開発方法や運用トラブルについては、当ブログで不定期にご紹介しています。Twitterで新着記事のお知らせもしています。宜しければフォローどうぞ。