Webスクレイピングの仕組み
Webスクレイピングってよく聞くけど、何をするものなの?
簡単に言うと、Webサイトのページを自動で読み取って、欲しいデータだけを抜き出す技術だよ。たとえば価格比較サイトは、いろんなECサイトの商品価格をスクレイピングで集めて一覧にしてるんだ。研究者がSNSの投稿を分析したり、不動産サイトの物件情報をまとめたりするのにも使われてるね。
へえ!でも具体的にはどうやってデータを取ってるの?人がブラウザで見るのと何が違うの?
HTMLを解析するって、どうやって「ここが商品名」「ここが価格」って見分けるの?
でも最近のWebサイトって、JavaScriptで後から表示される部分も多いよね?それも取れるの?
いい質問だね。普通のHTTPリクエストだとJavaScriptは実行されないから、動的に生成される部分は取得できないんだ。そこで登場するのがヘッドレスブラウザ。PuppeteerやPlaywrightといったツールを使うと、画面を表示しない状態で本物のブラウザを動かせる。JavaScriptが実行された後のDOMを取得できるから、SPAのようなサイトでもスクレイピングできるよ。
なるほど!でもスクレイピングされる側は困らないの?対策とかあるのかな。
そもそもスクレイピングって法律的に大丈夫なの?勝手にやっていいの?
robots.txt を守らなかったらどうなるの?
スクレイピングが裁判になったケースもあるって聞いたんだけど、本当?
有名なのはアメリカのLinkedIn対hiQ Labs事件だね。hiQ Labsはリンクトインの公開プロフィールをスクレイピングして人材分析サービスを提供していたんだけど、LinkedIn側がアクセスをブロックしたんだ。裁判では「公開情報のスクレイピングはコンピュータ詐欺・不正利用防止法に違反しない」という判断が出て、hiQ Labs側が勝訴した。ただし2022年の最高裁差し戻し後も争いは続いていて、完全に決着がついたわけではない。この判例はスクレイピングの法的グレーゾーンを象徴しているよ。
じゃあスクレイピングは完全にOKとも完全にNGとも言えないんだね。