Python
 Computer >> コンピューター >  >> プログラミング >> Python

Scrapyを使用したPythonでのWebスクレイピングの実装


この記事では、Pythonで利用可能なScrappyモジュールを使用したWebスクレイピング手法について学習します。

ウェブスクレイピングとは何ですか?

Webスクレイピングは、クローラー/スキャナーを使用してWebサイトからデータを取得/取得するために使用されます。 Webスクレイピングは、APIの機能を提供しないWebページからデータを抽出するのに便利です。 Pythonでは、Beautiful Soup、Scrappy、lxmlなどのさまざまなモジュールを使用してWebスクレイピングを実行できます。

ここでは、Scrappyモジュールを使用したWebスクレイピングについて説明します。

そのためには、まずScrappyをインストールする必要があります。 。

ターミナルまたはコマンドプロンプトを入力します-

>>> pip install Scrappy

Scrappy として 初期化コマンドを実行するために必要なフレームワークです

>>> scrappy startproject tutpts

ここでは、ウェブクローラーを作成します /スパイダーでウェブサイトからデータを取得します。

クローラーを構築するために、 tutptscraw.pyという名前の別のスクリプトを作成します ここでは、コンテンツを抽出するためのクラスを宣言します。ここでは、Webクローラーに名前を付け、.requestsを使用して、指定されたURLからデータをフェッチします。

フェッチされたデータを生成するジェネレータ関数が使用されます。

import scrapy
class ExtractUrls(scrapy.Spider):
   name = "fetch"
   # generator Function
   def start_requests(self):
      # enter the URL
      urls = ['https://www.tutorialspoint.com/index.htm/', ]
      for url in urls:
         yield scrapy.Request(url = url, callback = self.parse)

ここで、アンカータグ内にカプセル化されたすべてのデータは、リクエスト関数を使用してフェッチされます。スクラップはミニフレームワークであるため、すべての機能をスクラップシェルで実行します。

スクラップシェルをアクティブ化するには、次のコマンドを使用します

scrappy shellscrapy shell https://www.tutorialspoint.com/index.htm

次に、セレクター(CSSまたはxpaths)を使用してアンカータグからデータをフェッチします

response.css('a')
links = response.css('a').extract()

Webページで利用可能なすべてのリンクを取得するために、解析メソッドを作成します。 Scrappyは、以前にアクセスしたURLを内部的にバイパスして、結果の表示中のレンダリング時間を短縮します。

import scrapy
class ExtractUrls(scrapy.Spider):
   name = "fetch"
   # generator Function
   def start_requests(self):
      # enter the URL
      urls = ['https://www.tutorialspoint.com/index.htm/', ]
      for url in urls:
         yield scrapy.Request(url = url, callback = self.parse)
   # Parse function
   def parse(self, response):
      title = response.css('title::text').extract_first()
      # Get anchor tags
      links = response.css('a::attr(href)').extract()
      for link in links:
         yield {
            'title': title,
            'links': link
         }
         if 'tutorialspoint' in link:
            yield scrapy.Request(url = link, callback = self.parse)

結論

このチュートリアルでは、PythonでScrappyモジュールを使用したWebクローラーの実装について学習しました


  1. Webスクレイピング用のPythonツール

    コンピュータサイエンスでは、WebスクレイピングとはWebサイトからデータを抽出することを意味します。この手法を使用すると、ウェブ上の非構造化データが構造化データに変換されます。 Python3で最も一般的なWebスクレイピングツールは-です。 Urllib2 リクエスト BeautifulSoup Lxml セレン MechanicalSoup Urllib2 −このツールにはPythonがプリインストールされています。このモジュールは、URLを抽出するために使用されます。さまざまなプロトコル(FTP、HTTPなど)を使用してURLをフェッチするurlopen()

  2. 31 の最高の Web スクレイピング ツール

    コーディングに慣れていない人にとって、Web スクレイパーを作成するのは難しいかもしれません。幸いなことに、Web スクレイピング ソフトウェアは、プログラマーと非プログラマーの両方が利用できます。 Web スクレイピング ソフトウェアは、Web サイトから関連データを取得するために特別に設計されたソフトウェアです。これらのツールは、何らかの方法でインターネットからデータを取得したい人にとって有益です。この情報は、コンピューター上のローカル ファイルまたはデータベースに記録されます。 Web用のデータを自律的に収集する技術です。 31 の最高の無料 Web スクレイピング ツールのリストを紹介