![](https://www.netassist.ne.jp/wp-content/uploads/2025/01/アイキャッチW1920H840_01月.jpg)
スクレイピングについて
![](https://www.netassist.ne.jp/wp-content/uploads/2025/02/corinne-kutz-tMI2_-r5Nfo-unsplash.jpg)
初めまして昨年新卒で入社をしましたネットアシスト技術部のFです。
よろしくお願いします。
今回はスクレイピングとアクセスの内容、ちょっとした対策についてまとめていきます。
スクレイピングとは
「スクレイピング(scraping)」とは、日本語では「削る」等と訳されますが、IT用語に限れば「WEBサイトから集めた大量のデータを抽出・加工・整形する事」を指します。
特に大量のデータを抽出・加工するためには、同じく大量のアクセスWEBサイトに行う必要がありますが、その際、過度なアクセスがサーバへの負荷を高め、サービスに影響を及ぼす可能性があるため、規約で禁止している場合もあります。
近い言葉で「クローリング(crawling)」がありますが、スクレイピングは少し違う役割を持っています。
クローリングとスクレイピングの違い
クローリングは日本語なら「這う」事を意味し、IT用語ならWEBページを巡回し、その情報を集める事を指します。またクローリングを行うエージェント、いわゆる「クローラー」は検索サイトならGooglebotやAmazonbotなどが有名です。
混同される事も多いですが、「クローリング」は「情報収集」、「スクレイピング」は「クローリングで集めた情報を抽出・加工する」といった意味となります。
またクローラーが特定のページにアクセスしているのか、または様々なページにアクセスしているのか、といった挙動は、アクセスログを見てみるとわかります。
アクセスログの確認
Apache のアクセスログについては、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)や、マニュアルにも書かれていますが、今回はざっくり説明していきます。
アクセスログ例
以下はApacheのログフォーマット「combined」書式で記録されたアクセスログの例です。
203.0.113.100 – – [24/Jan/2025:08:23:53 +0900] “GET /search?query=shoes&category=sports HTTP/2.0” 200 1048576 “https://example.com/home” “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome Safari/537.36”
① リモートホスト (クライアントのIP)
リクエストを送信したユーザーのホスト名、またはIPアドレスが記録されています
(例) 203.0.113.100
② 日時
リクエストが送られた日時(日時とタイムゾーン)
(例) [24/Jan/2025:08:23:53 +0900]
③ HTTPメソッド
ユーザーが使用したHTTPメソッド(GET, POSTなど)
(例) GET
④ リクエストURL
ユーザーがアクセスしたURLパス
(例) /search?query=shoes&category=sports
⑤ HTTPステータスコード
サーバーがリクエストに対して返したレスポンスコード
弊社外のサイトですがこちらで詳しく確認できます。
(例) 200
⑥ レスポンスサイズ
サーバーが返したレスポンスのサイズ(バイト数)
(例) 1048576
⑦ リファラ(Referer)
ユーザーがどのページから移動してきたかの情報
※リファラがない場合もあります。
(例) ”https://example.com/home“
⑧ ユーザーエージェント (User-Agent)
リクエストを送信したブラウザやデバイスの種類を示す情報
使用されたブラウザやデバイスなどを確認できます。
(例) ”Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome Safari/537.36″
対策
サーバのリソースにもよりますが、クローラーから1秒間に1クライアントで1000リクエスト等、短時間で大量のアクセスがある場合は、サービスに影響が出てしまうことや、最悪サーバ自体が停止する場合もあります。
お客様で設定をしていただく必要がありますが、検索サイトのクローラーであれば、通常はrobots.txt ファイルを設置・設定を行う事で、アクセスの制限が可能な場合があります。
また、単純なスクレイピング目的でのクローリングについては、手作業で調査して遮断する、といった事も可能ではあるのですが、WAF(Web Application Firewall)の導入などを視野に入れていただくことで、障害を未然に、かつ自動的に防げる可能性があります。
ネットアシストではファイアウォールなどで防げない攻撃から守るWAFをご提供しております。
事前に調査のご依頼をいただくことで、お客様にあったWAFを提供できますので、詳しいWAFの資料につきましては下記のフォームよりお問い合わせください。
最後までお読みいただき、ありがとうございました。