15章APIを介したクローリング
JavaScriptは古くから、あらゆるWebクローラーにとって悩みの種でした。インターネット黎明期には、Webサーバーに対してHTMLページをリクエストすれば、ブラウザで表示されるHTMLとまったく同じ内容が返ってくることが保証されていました。
JavaScriptやAjaxによるコンテンツ生成やページの読み込みが一般的になって来ており、この傾向はますます強まっています。「14章 JavaScriptのスクレイピング」では、その解決策の1つとして、Seleniumを用いてブラウザを自動操作とデータを取得する方法を紹介しました。この方法は手軽に実行できて、ほとんどの場合問題なく動作します。
問題は、Seleniumのような強力で効果的な「ハンマー」を手にすると、あらゆるWebスクレイピングの問題が、このハンマー用の「釘」に見えてくることです。
本章では、JavaScriptをまったく扱わずに(実行もロードも関係なしに)、APIを介してデータの源を直接取得する方法について述べます。
15.1 APIの簡単な紹介
REST、GraphQL、JSON、XML APIについて、多数の書籍や講演、参考資料が存在しますが、その本質はごく単純な概念に基づいています。API(Application Programming Interface)とは、異なるプログラミング言語で書かれていたり構造が違っていても、ソフトウェア同士で通信できるようにするための標準的な構文を定義するものです。
本節では、Web API(特にWebサーバーがブラウザと通信するためのAPI)に焦点を当て「API」という用語がWeb APIを示すものとして扱います。他の文脈ではAPIがより一般的な用語として使われる場合があることを忘れないでください。例えば、同じ端末で実行されているJavaプログラムとPythonプログラムが通信する場合にもAPIという用語が使われます。APIは必ずしも「インターネットを介する」必要はなくWeb技術を伴うとは限りません。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access