Scrapyは、ウェブサイトから必要なデータを抽出するためのオープンソースで協力的なフレームワークです。高速で、シンプルでありながらも拡張可能な方法で動作します。Zyteや他の多くのコントリビューターによってメンテナンスされています。
最新バージョンのScrapyをインストールするには、Scrapy 2.11.2を pip install scrapy
コマンドでインストールできます(PyPIやConda経由も可能です)。また、リリースノートも確認できます。
Scrapyを使ってウェブスパイダーを作成して実行するには、以下のように行います。まず、 import scrapy
を使ってScrapyをインポートし、 class BlogSpider(scrapy.Spider)
のようにスパイダークラスを定義します。 start_urls
にクロールを開始するURLを設定し、 parse
メソッド内でデータの抽出処理を行います。例えば、 response.css('.oxy-post-title')
を使ってタイトルを抽出し、 yield {'title': title.css('::text').get()}
でデータを返すことができます。また、次のページへのリンクも同様に処理できます。
ScrapyをZyte Scrapy Cloudにデプロイする場合、 shub login
でAPIキーを入力し、 shub deploy
でスパイダーをデプロイし、 shub schedule
で実行を予定設定できます。また、 shub items
コマンドでスクレイプしたデータを取得できます。
Scrapyは、高速かつ強力で、データ抽出のルールを書くだけで、それ以外の処理はScrapyに任せることができます。容易に拡張可能で、新しい機能をプラグインで追加できます。ポータブルで、Pythonで書かれており、Linux、Windows、Mac、BSDで動作します。また、活発なコミュニティがあり、GitHubでは43,100のスター、9,600のフォーク、1,800のウォッチャーがあり、Twitterでは5,500のフォロワーがいます。StackOverflowでは18,000の質問があります。
Scrapyをさらに詳しく知りたい場合は、一見の価値があります。また、Scrapyを使っている企業を知ることもできます。