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ログインページにログインする必要があります。ダッシュボードにリダイレクトされます。
次に、[プロジェクトの作成]をクリックして、プロジェクトの名前を指定します。これで、コマンドライン(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
コマンドラインからは以上です。スパイダーダッシュボードセクションに戻ると、ユーザーは準備ができたスパイダーを確認できます。スパイダー名をクリックして[実行]ボタンをクリックするだけです。これで、ダッシュボードにスパイダーが表示されます。たとえば、-
ワンクリックで実行の進行状況が表示され、ローカルマシンを24時間年中無休で実行する必要はありません。
-
RubyでのAWSLambda関数の構築、テスト、デプロイ
ソフトウェアの開発は難しい場合がありますが、それを維持することははるかに困難です。メンテナンスには、ソフトウェアパッチとサーバーメンテナンスが含まれます。この投稿では、サーバーの管理と保守に焦点を当てます。 従来、サーバーはオンプレミスでした。つまり、物理ハードウェアを購入して保守していました。クラウドコンピューティングでは、これらのサーバーを物理的に所有する必要がなくなりました。 2006年にAmazonがAWSを開始し、EC2サービスを導入したとき、現代のクラウドコンピューティングの時代が始まりました。このタイプのサービスでは、物理サーバーを保守したり、物理ハードウェアをアップグレードし
-
RailsをAWSLambdaにデプロイする
サーバーレスコンピューティングは、サーバーの管理とプロビジョニングの作業をクラウドプロバイダーに任せるのに役立ち、ほとんどのテクノロジーチームにとって急速に重要になっています。 AWS Lambdaは、多くのテクノロジーチームで使用されているサーバーレステクノロジーの一種です。 AWS Lambdaは、NodeJS、Java、Python、Rubyなどのコアプログラミング言語のほとんどをサポートしています。コアプログラミング言語はサポートされていますが、これらの言語で構築されたフレームワークの一部である機能に依存してサーバーレス関数を実行したい場合があります。この投稿では、AWSLambdaで