表示中の記事のリンク先を、実際に開いて確かめた:約 60 件の間違いと、最初の点検が間違えた 3 つのこと
トレカダッシュ 開発の記録 / 2026年9月
iOS アプリ「トレカダッシュ」の記事には、お店や通販サイトのリンク先が付いています。記事の題名や値段が正しくても、リンク先のページが、閉じていたり、別の商品だったりすれば、利用者には役に立ちません。
2026 年 9 月 15 日の夜、「遷移先の内容まで見て、問題ないか調べてほしい」という依頼を受けて、表示中の記事のリンク先を、実際に開いて、中身を記事と突き合わせました。商品、店、受付中か、販売の形式、締切、値段です。約 60 件の間違いが見つかりました。
数字は、2026 年 9 月 15 日の作業の記録から書いています。点検は、書き込みをしない形で行い、見つかったものを別に直しました。
どう調べたか
- X の投稿(361 件):削除されたものは 0 件でした。本文は、以前の点検で突き合わせ済みです。
- X 以外(Yahoo! を除く 703 件):直接、または取得サービス(日本の IP を指定)でリンク先を読み、AI で判定しました。Amazon は、必ず取得サービス経由です。
最初の版の点検は、3 つ間違えていました。
- Amazon を、シンガポールから開いた。価格がシンガポールドルで出て、別の出品者が見えたので、それを「誤り」と判定していました。
- 楽天を、文字化けしたまま読んだ。文字コード(EUC-JP)を判定していませんでした。
- Yahoo! を、6 並列で 501 件開いた。本番と同じ IP が、HTTP 489 で拒否されました(別の記事に書いています)。Yahoo! は、途中で打ち切りました。
点検の道具が間違っていると、「間違い」の数が増えます。文字コードの判定、Amazon を日本から開くこと、「この商品そのもの」の在庫だけで判定すること、を直してから、流し直しました。
見つかった間違い(約 60 件)
| 中身 | 件数 | 直し |
|---|---|---|
| Amazon の「招待リクエスト」なのに、予約・先着になっていた | 10 | 抽選に直す |
| Amazon の「予約注文」なのに、先着になっていた | 7 | 予約に直す |
| 楽天ブックスで「予約受付中」なのに、先着 | 3 | 予約に直す |
| 休店中の出店者(Yahoo!) | 6 | 伏せる |
| 売り切れ、受付終了なのに、表示されていた | 多数 | 伏せる |
| リンク先が、別の店、または終わった抽選だった | 3 | 店の X の投稿へ戻す |
| リンク先が、別の商品だった | 2 | 伏せる |
| 値段の食い違い | 約 10 | 直す |
| 店名が空 | 1 | 補う |
特に多かったのは、販売の形式の取り違えです。Amazon は、先着でも予約でもなく、招待を受けて買える「招待リクエスト」があります。これを「先着」と扱うと、利用者は、急いでも買えません。それまでの処理は、招待の印を付けるだけで、販売の形式を直していませんでした。
「売り切れ」の判定語に当たらなかったものもありました。Yahoo! の売り切れのページは、画面には「在庫なし」と出ていますが、判定語のどれにも当たっていませんでした。そこで、ページに埋め込まれている、その商品自身の在庫データ("stock":{"isAvailable":false)で判定します。画面の文言より、データのほうが確かです。
「応募リンクを開くと、サイトのトップへ飛ぶ」
同じ日の別の点検で、見つかったものです。ある店の抽選の、告知画像の QR コードが指す URL が、実際に開くと、そのサイトのトップページに転送されていました。応募のページではありません。
応募のリンクを採用する、唯一の関門に、判定を足しました。実際に開いて、もとの URL はトップ以外のパスなのに、転送先のパスが空(または、トップらしい名前のファイル)なら、採用しません。読めないとき(403、タイムアウト)は、採用のままにします。ボット対策をしている店が多いので、読めないことは、悪いことの印にしません。同じ URL は、6 時間控えます。
直さなかったもの、直せなかったもの
見つかったものを、全部「間違い」と数えなかったのも、大事なところです。確かめて、直していないものがあります。
- 楽天市場の「売り切れ」:ページのデータ上は在庫あり(在庫数を出さない設定)。AI の読み違いでした。
- Amazon の「他の購入オプションを見る」:ほかの出品者がいるので、売り切れとは限りません。
- Amazon の英語の題名:自動翻訳された名前で、商品は合っていました。
- 読めなかった 85 件:楽天市場(広告経由のリンク)、会員サイト、LINE、Google フォームなど。
点検の結果は、直す、直さない、読めなかったの 3 つに分けて、理由とともに残しています。「直さない」にも、理由が要ります。
分かったこと
題名と値段が合っていても、リンク先まで開かないと、分からない。
- リンク先を、実際に開く。記事の中身だけを見ても、リンク先が閉じていることは分かりません。
- 点検の道具を、先に点検する。国、文字コード、並列数。道具の間違いが、「間違い」を増やします。
- 画面の文言より、埋め込まれたデータ。売り切れは、文言ではなく、在庫のデータで判定します。
- 見つけたものを、全部「間違い」にしない。直さないものにも、理由を残します。
- 読めなかったことを、悪い印にしない。ボット対策で読めないのは、普通のことです。
この話に出てくるもの
- トレカダッシュ — トレカの抽選・予約・先着の情報を集める iPhone アプリ
- 自分で作った仕組みが、自分を傷つけた 4 つの記録 — 点検が本番の IP を閉め出した話
- 「確認済み」の印が付いていたのに、リンク先を一度も読めていなかった — リンク先を読めていなかった別の例
- 競合サイトと突き合わせて、取りこぼしを数えた — 別の角度の点検
ほかの記録
- 商品のジャンルを、公式カタログで直した:下見を 3 回やって、13 件から 4 件に絞った — デュエル・マスターズの商品がポケモンカードとして登録されていた。公式カタログをジャンルの正解にしたところ、1 回目の下見では、正しいヴァイスの商品が 9 件も別のゲームに変わるところだった。3 回の下見で誤爆 0 件に。
- 監査 61 本を総点検して見つけた 4 つ:朝 4 時に 51 本が固まり、鍵の期限は 55 秒で、定価の補完は「入れない」と決めた — 1 日 1 回の処理が 4 時に 27 本・5 時に 24 本集まって枠を塞いでいた。楽天の巡回は 1 回 181〜480 秒で、鍵の期限は 55 秒しかなかった。数えても直せない異常を数えるのをやめ、定価を 1 店で埋める案は、測ったうえで入れなかった。
- 公式の一覧から、「作品名だけの商品」が 393 件できていた:商品名の欄に、商品の形は入っていなかった — 公式サイトの一覧を取り込むと、この日だけで商品が 502 件できた(ふだんは 1〜10 件)。商品名の欄は作品名だけで、形はカテゴリ側にあった。393 件を掃除し、328 件を正しい名前で入れ直すと、別表記のぶつかりが 0 組から 250 組になった。
コメント
感想や、記事の間違いの指摘は、ここへ。書くには、GitHub のアカウントが要ります。
押すと、giscus(giscus.app)と GitHub に接続します。押さなければ、接続しません。詳しくはあつかいに書いています。