web-dev-qa-db-ja.com

BeautifulSoupとScrapyクローラーの違いは?

Amazonとe-bay製品の価格の比較を表示するウェブサイトを作りたいです。これらのどれがよりよく機能しますか、なぜですか? BeautifulSoupにはある程度精通していますが、Scrapy crawlerにはあまり慣れていません。

122
Nishant Bhakta

ScrapyはWebスパイダーまたはWebスクレーパーフレームワークです、Scrapyを指定しますクロールを開始するルートURLを指定すると、クロールおよびフェッチするURLの数(数)などの制約を指定できます。 Webスクレイピングまたはcrawlingの完全なフレームワークです。

ながら

BeautifulSoup解析ライブラリで、これもかなり良いフェッチを行いますURLのコンテンツを使用して、手間をかけずに特定の部分を解析できます。指定したURLのコンテンツのみを取得して停止します。特定の条件で無限ループ内に手動で配置しない限り、クロールしません。

簡単に言えば、Beautiful Soupを使用すると、Scrapyに似たものを作成できます。 Beautiful Soupはlibraryですが、Scrapyはcompleteフレームワークです

ソース: http://www.quora.com/Python-programming-language-1/How-is-BeautifulSoup-different-from-Scrapy

212
Medeiros

両方とも良いと思います...両方を使用するプロジェクトを今すぐやっています。まず、scrapyを使用してすべてのページをスクラップし、パイプラインを使用してmongodbコレクションに保存し、ページに存在するイメージもダウンロードします。その後、BeautifulSoup4を使用して、属性値を変更し、特別なタグを取得する必要があるpos処理を行います。

どのページの製品が必要なのかわからない場合、クローラーを使用してすべてのAmazon/ebayウェブサイトを実行し、明示的なforループを作成せずに製品を検索できるため、良いツールはスクレイプになります。

スクレイピーなドキュメントをご覧ください。使い方はとても簡単です。

18
rdenadai

私が行う方法は、スクレイピーではなくeBay/Amazon APIを使用し、BeautifulSoupを使用して結果を解析することです。

APIを使用すると、スクレイピークローラーから取得したデータと同じデータを取得する公式の方法が提供され、IDの隠蔽やプロキシの混乱などを心配する必要がありません。

3
baldnbad

どちらもデータの解析に使用しています。

スクレイピー

  • Scrapyは、高速で高レベルのWebクロールおよびWebスクレイピングフレームワークであり、Webサイトをクロールし、ページから構造化データを抽出するために使用されます。
  • しかし、データがJavaスクリプトまたは動的にロードされる場合、いくつかの制限があります。スプラッシュ、Seleniumなどのパッケージを使用することで、それを克服できます。

BeautifulSoup

  • Beautiful Soupは、HTMLおよびXMLファイルからデータを引き出すためのPythonライブラリーです。

  • このパッケージを使用して、Javaスクリプトからデータを取得したり、ページを動的にロードしたりできます。

BeautifulSoupでのスクレイピーは、静的および動的コンテンツをスクレイピングするために使用できる最高のコンボの1つです。

3
Arun Augustine

スクレイピーこれは、ウェブスクレイピングフレームワークですこれには、クロールロジックのみに集中できるように、スクレイピングを容易にするたくさんのグッズが付属しています。スクレイピーが面倒をみてくれる私のお気に入りのいくつかを以下に示します。

  • フィードのエクスポート :基本的に、CSV、JSON、jsonlines、XMLなどのさまざまな形式でデータを保存できます。
  • 非同期スクレイピング:Scrapyはツイストフレームワークを使用して、複数のURLに一度にアクセスして、各リクエストが非ブロッキング方式で処理されるようにします(基本的に、リクエストが完了するまで待ってから別のリクエストを送信する必要はありません)。
  • セレクター :ここでスクレイピーと美しいスープを比較できます。セレクターを使用すると、見出し、クラス名を持つ特定のdivなどの特定のデータをWebページから選択できます。 Scrapyは解析にlxmlを使用しますが、これは美しいスープよりも非常に高速です。
  • プロキシ、ユーザーエージェント、ヘッダーなどの設定:スクレイピーにより、プロキシおよびその他のヘッダーを動的に設定および回転できます。

  • アイテムパイプライン :パイプラインを使用すると、抽出後にデータを処理できます。たとえば、データをmysqlサーバーにプッシュするようにパイプラインを構成できます。

  • クッキー:スクレイピーは自動的にクッキーを処理します。

等.

TLDR:スクレイピーは、大規模なクロールを構築するために必要なすべてを提供するフレームワークです。 Webのクロールの複雑さを隠すさまざまな機能を提供します。セットアップの負担を心配することなく、Webクローラーの作成を開始できます。

Beautiful SoupBeautiful Soupは、解析のためのPythonパッケージですHTMLおよびXMLドキュメント。そのため、Beautiful Soupを使用すると、ダウンロード済みのWebページを解析できます。 BS4は非常に人気があり、古いものです。スクレイピーとは異なり、クローラーを作るためだけに美しいスープを使用することはできません。 bs4でクローラーを作成するには、requests、urllibなどの他のライブラリが必要です。繰り返しますが、これは、クロールするURLのリストを管理する、クロールする、Cookieを処理する、プロキシを管理する、エラーを処理する、CSV、JSON、XMLなどにデータをプッシュする独自の関数を作成する必要があることを意味します multiprocessing などの他のライブラリを使用する必要があります。

総括する。

  • Scrapyは豊富なフレームワークであり、簡単にクローラーの作成を開始できます。

  • 美しいスープは、Webページの解析に使用できるライブラリです。 Webをこするために単独で使用することはできません。

Amazonとe-bay製品の価格比較Webサイトには、間違いなくスクレイピーを使用する必要があります。 URLのデータベースを構築し、毎日クローラーを実行して(cronジョブ、クロールをスケジュールするためのCelery)、データベースの価格を更新することができます。これにより、Webサイトは常にデータベースとクローラーから取得し、データベースは個別のコンポーネントとして機能します。

0
Amit

違いは多く、ツール/テクノロジーの選択は個々のニーズに依存します。

主な違いはほとんどありません。

  1. BeautifulSoupは、Scrapyよりも学習しやすいです。
  2. 拡張機能、サポート、コミュニティは、BeautifulSoupよりもScrapyの方が大きくなっています。
  3. ScrapyはSpiderと見なされるべきですが、BeautifulSoupはParserです。
0
krish___na

スクレイピーを使用すると、大量のコードを保存して構造化プログラミングを開始できます。Scapyの事前に作成されたメソッドが気に入らない場合は、BeautifulSoupをスクレイピーメソッドの代わりに使用できます。大きなプロジェクトには両方の利点があります。

0
ethirajit