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

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


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

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

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

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

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

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

>>> pip install Scrappy

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

>>>プロジェクトの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)

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

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

スクレイピーシェル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 スクレイピング ツールのリストを紹介