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

ScrapingHubにScrapyスパイダーをデプロイする


スクレイピースパイダー

Scrapy spiderは、Webサイトのリンクをたどり、Webページから情報を抽出する機能を提供するクラスです。

これは、他のスパイダーが継承しなければならないメインクラスです。

Scrapinghub

Scrapinghubは、Scrapyスパイダーを実行するためのオープンソースアプリケーションです。 Scrapinghubは、Webコンテンツをいくつかの有用なデータまたは情報に変換します。複雑なウェブページの場合でも、ウェブページからデータを抽出できます。

Scrapinghubを使用して、Scrapyスパイダーをクラウドにデプロイし、実行します。

スパイダーをscrapinghubにデプロイする手順-

ステップ1-

スクレイププロジェクトを1つ作成する-

Scrapyをインストールした後、ターミナルで次のコマンドを実行するだけです-

$scrapy startproject <project_name>

ディレクトリを新しいプロジェクト(project_name)に変更します。

ステップ2-

ターゲットWebサイト用に1つのスクレイプスパイダーを作成し、通常のWebサイト「quotes.toscrape.com」を使用してみましょう。

以下は私の非常に単純なスクレイプスパイダーです-

コード-

#import scrapy library
import scrapy

class AllSpider(scrapy.Spider):

crawled = set()
#Spider name
name = 'all'
#starting url
start_urls = ['https://www.tutorialspoint.com/']

def __init__(self):
   self.links = []

def parse(self, response):
   self.links.append(response.url)
   for href in response.css('a::attr(href)'):
      yield response.follow(href, self.parse)

ステップ3-

スパイダーを実行し、出力をlinks.jsonファイルに保存します-

上記のコードを実行すると、すべてのリンクをスクレイプして、links.jsonファイル内に保存できるようになります。これは時間のかかるプロセスではないかもしれませんが、24時間(24時間年中無休)継続的に実行するには、このスパイダーをScrapinghubにデプロイする必要があります。

ステップ4-

Scrapinghubでアカウントを作成する

そのためには、GmailアカウントまたはGithubを使用してScrapingHubログインページにログインする必要があります。ダッシュボードにリダイレクトされます。

ScrapingHubにScrapyスパイダーをデプロイする

次に、[プロジェクトの作成]をクリックして、プロジェクトの名前を指定します。これで、コマンドライン(CLI)またはgithubを使用してプロジェクトをクラウドに追加できます。次に、shub CLIを使用してコードをデプロイし、最初にshubをインストールします

$pip install shub

shubをインストールした後、アカウントの作成時に生成されたapiキーを使用してshubアカウントにログインします(https://app.scrapinghub.com/account/apikeyからAPIキーを入力します)。

$shub login

APIキーに問題がなければ、今すぐログインしています。次に、「コードのデプロイ」セクションのコマンドラインセクションに表示されるデプロイID(6桁の数字)を使用してデプロイする必要があります。

$ shub deploy deploy_id

コマンドラインからは以上です。スパイダーダッシュボードセクションに戻ると、ユーザーは準備ができたスパイダーを確認できます。スパイダー名をクリックして[実行]ボタンをクリックするだけです。これで、ダッシュボードにスパイダーが表示されます。たとえば、-

ScrapingHubにScrapyスパイダーをデプロイする

ワンクリックで実行の進行状況が表示され、ローカルマシンを24時間年中無休で実行する必要はありません。


  1. RubyでのAWSLambda関数の構築、テスト、デプロイ

    ソフトウェアの開発は難しい場合がありますが、それを維持することははるかに困難です。メンテナンスには、ソフトウェアパッチとサーバーメンテナンスが含まれます。この投稿では、サーバーの管理と保守に焦点を当てます。 従来、サーバーはオンプレミスでした。つまり、物理ハードウェアを購入して保守していました。クラウドコンピューティングでは、これらのサーバーを物理的に所有する必要がなくなりました。 2006年にAmazonがAWSを開始し、EC2サービスを導入したとき、現代のクラウドコンピューティングの時代が始まりました。このタイプのサービスでは、物理サーバーを保守したり、物理ハードウェアをアップグレードし

  2. RailsをAWSLambdaにデプロイする

    サーバーレスコンピューティングは、サーバーの管理とプロビジョニングの作業をクラウドプロバイダーに任せるのに役立ち、ほとんどのテクノロジーチームにとって急速に重要になっています。 AWS Lambdaは、多くのテクノロジーチームで使用されているサーバーレステクノロジーの一種です。 AWS Lambdaは、NodeJS、Java、Python、Rubyなどのコアプログラミング言語のほとんどをサポートしています。コアプログラミング言語はサポートされていますが、これらの言語で構築されたフレームワークの一部である機能に依存してサーバーレス関数を実行したい場合があります。この投稿では、AWSLambdaで