LogoMark.png

WebScraping

Web Scraping

機械学習のためのデータ収集技術

はじめに

Web Scrapingとは、Webサイトから記事情報や画像を抽出する技術のことで、Web Crawler あるいはWeb Spider とも呼ばれます。近年、機械学習に用いる学習データ(例えば犬と猫の画像)を大量に取得する目的で、この技術が必要になることが多くなりました。

ご注意ください

WebScrapingは、人間が記事を読む場合と違って、プログラムが短時間に大量のリクエストを行います。通常の Webサーバーが想定する以上の負荷をかけることになるので*1、アクセス頻度などを考えて相手に迷惑をかけないよう、注意が必要です。

簡単な方法

Webスクレイピングというキーワードで検索すると、Python を使った方法が多くヒットしますが、作業の目的によっては、いわゆるクローラーを使えば簡単に目的が達成されます。例えば、特定のWebページにリンクされた画像の収集であれば、フリーのWebクローラーツールや、ブラウザの拡張機能を使って、簡単に実現できます。

Python でプログラムを書く

Pythonでは Scrapy という有名なフレームワークがありますが、フレームワークというのはそれなりに学習コストがかかります。ここでは、古くから使われている、RequestsBeautifulSoup のみを使って、簡単なコードでそれを実現する事例を紹介します。以下が前提となります。

以下、Requests によるページの取得と BeautifulSoup による要素情報の取得の仕方について順に解説します。

Requests によるページの取得

Requests は、Webページを取得・解析するためのライブラリです。

Beautiful Soup による要素情報の抽出

Beautiful Soup は、HTMLを指定してその情報を抽出する場合に使用します。


画像のスクレイピング

(書きかけです。)





PAGES

GUIDE

DATA


*1 サイトによっては、無許可のスクレイピングを拒否している場合があります(例えば Twitter)。そのようなサイトでスクレイピングを行うと違反行為として罰則を受けたり、場合によっては違法な攻撃とみなされて法的処罰を受ける可能性もあります。
Last-modified: 2020-02-02 (日) 18:02:27