皆さんにお願いしたいプロジェクトがあります!長年何度も認めてきたように、私の開発スキルはせいぜい貧弱ですが、多くのApple管理者やコンサルタント、ひいては私たち全員に役立つツールのアイデアを思いつきました。
Appleは、同社のオペレーティングシステム、アプリ、そしてデバイスの様々な技術的側面を網羅した、数千ページに及ぶサポート記事からなる広範なナレッジベースを維持しています。TidBITSでは、これらの記事に定期的にリンクを貼っていますが、読者のJolin Warrenさんからのご提案のおかげで、私のクリーンアップマクロはURLをトリミングし、お住まいの国のデフォルトのAppleサポートサイトに読み込まれるようになりました。
以前、AppleサポートのURLが数字のパターンに従っていることに気づきました。例えば、Appleの最新のセキュリティアップデートリリースノートのURLは次のとおりです。
- iOS 16.7.9 および iPadOS 16.7.9: https://support.apple.com/en-us/HT214116
- iOS 17.6 および iPadOS 17.6: https://support.apple.com/en-us/HT214117
- macOS 12.7.6: https://support.apple.com/en-us/HT214118
- macOS 14.6: https://support.apple.com/en-us/HT214119
- macOS 13.6.8: https://support.apple.com/en-us/HT214120
- Safari 17.6: https://support.apple.com/en-us/HT214121
- tvOS 17.6: https://support.apple.com/en-us/HT214122
- visionOS 1.3: https://support.apple.com/en-us/HT214123
- watchOS 10.6: https://support.apple.com/en-us/HT214124
ご覧のとおり、「HT」の後の6桁のID番号はリリースごとに1ずつ増加しますが、IDはリリースごとにランダムに割り当てられます。これらのURLを手作業で作成し、いくつかの数字を推測することで、Appleがこれまで様々な6桁の範囲を使用してきたことが分かりました。最近のURLの多くは213と214で始まりますが、100~119や201~212で始まるURLも見つかりました。範囲に何らかのパターンは見つかっておらず、Appleは何らかの理由で一部のIDを省略しているようです。
この認識を活用する
Appleの行動を初めて理解したとき、DejalのWeb監視アプリSimonを使って、これらのページが変更されたかどうかを知らせてもらおうかと考えました。しかし、Simonに何千ものURLをプログラムで送る方法が思いつかず、定期的にチェックするとMacに過負荷がかかりそうだったので、あまり進めませんでした。他のWeb監視ツールにも同じ問題がありました。それらは数千ページではなく、少数のページを監視するように設計されているのです。
次に、6桁のIDを入力する列、各IDをURLルートに追加する列、そして数式を使って=Hyperlink($A2, IMPORTXML($A2,"//title"))
結果ページのハイパーリンク付きタイトルを検索して取得する列を含むGoogleスプレッドシートを作成しました。すべてのIDがアクティブなページにマッピングされているわけではないため、一部のセルには#N/Aが入力されていました。
成功?問題は、行を下に埋めていくと、Appleのサポートサイトへの発信が多すぎてGoogleスプレッドシートが途中で止まってしまうことです。URLをクリックすると従来のプレビューが表示されるのに、「読み込み中…」としか表示されません。
その後間もなく、Neptyneという会社からプレスリリースを受け取りました。同社はGoogleスプレッドシートのアドオンをリリースしており、プログラマーがPythonを使ってGoogleスプレッドシートのデータにインタラクションできるようになるとのことでした。私はPythonを知りませんでしたが、Neptyneの創設者であるDouwe Osingaに私の目標を説明すると、彼は私の要望をうまく取り入れてくれました。Pythonで書いてあったので、Googleスプレッドシートが混乱するようなループ処理をせずに済むのです。さらに、DouweはAppleのページから日付とバージョンを抽出できたので、日付順に並べ替えて、最近変更されたページを確認することができました(Appleのバージョン番号の付け方は結局わかりませんでした)。
この解決策は当初はうまく機能しましたが、不安定でした。行を追加すると全体が機能しなくなり、AIチャットボットの助けを借りてもトラブルシューティングできるほどPythonに精通していませんでした。
でも、それは私が望んでいたことが可能だと示唆していました。Appleの技術的な変更が発表されたらすぐに知ることができる世界を想像してみてください。後から検索して偶然見つけるのではなく。
Apple サポート記事トラッカー
Appleのサポート記事のURLを大量に反復処理し、コンテンツを取得し、リストを日付順に並べ替えることができたのは、良い概念実証でした。Googleスプレッドシートはこれに適したプラットフォームではないと思いますし、調査の結果、ExcelもNumbersも適していないことがわかりました。代わりに、誰でも利用できるWebベースのフロントエンドを備えたデータベースが必要だと思います。私の理想の世界では、Webスクレイピングはおおよそ次のように動作します。
- 考えられるすべての Apple サポート URL を、1 日または 1 週間に 1 回程度、定期的にスキャンします。(スパイダーのように動作するため、robots.txt の除外設定を尊重し、自己調整を行い、適切に動作する必要があります。)
- 最初のパスでは、各ページをデータベースに読み込み、タイトル、日付、バージョン、全文のフィールドに入力します。
- 後続のパスでは、前回の保存から変更されている場合は、コンテンツをローカルに保存します。
メタデータ、全文、バージョンを保存するデータベースを使用する場合、公開 Web サイトでは次のことが必要になります。
- すべての Apple サポート記事のタイトルのリストを日付順に表示し、以前のバージョンにアクセスできます。
- 選択した記事とバージョンごとに、レンダリングされた HTML を表示するペインを表示します。
- 記事の 2 つのバージョン間の違いを表示するビューを提供します。
- 新しい記事や変更された記事に関するアラートを RSS や電子メール経由で提供します。
- 全文検索を可能にする。(Appleの検索エンジンは著しく弱い。2024年3月25日の記事「Appleがマニュアル、仕様、ダウンロード用のドキュメントサイトを立ち上げる」を参照。)
- 追加のクレジットを得るには、注釈用の記事ごとのディスカッション トピックを提供します。
- 2 倍の追加クレジットを得るには、ソース ページを参照して回答するナレッジ ベースとの会話を可能にする AI チャットボットを作成します。
ある程度のWeb開発スキルを持つ人なら、それほど難しくないだろうと信じたいところですが、私のスキル範囲をはるかに超えています。(Glenn Fleishman氏は、作成を自ら申し出たわけではありませんが、Wikiサイトはデータの保存、比較、表示を容易にし、コミュニティによる注釈機能も提供できる手段になるかもしれないと提案しました。)このアイデアを共有しているのは、誰かがこの魅力的な挑戦に共感し、実際に構築してくれることを期待しているからです。開発プロセスに協力し、必要であればホスティングもお手伝いします。興味はありますか?他に、このようなツールに欲しい機能はありますか?