web-dev-qa-db-fra.com

Différence entre BeautifulSoup et Scrapy crawler?

Je souhaite créer un site Web présentant la comparaison entre Amazon et le prix du produit e-bay . Je connais un peu BeautifulSoup mais pas tellement avec Scrapy crawler .

111
Nishant Bhakta

Scrapy est un spider Web ou framework Web Scraper, vous attribuez à Scrapy une URL racine pour commencer l'analyse, puis vous pouvez spécifier des contraintes sur le nombre d'URL que vous souhaitez analyser. et chercher, etc. C'est un cadre complet pour le Web-scraping ou crawling.

Tandis que

BeautifulSoup est une bibliothèque d'analyse, qui récupère également assez bien le contenu de l'URL et vous permet d'analyser certaines parties de celles-ci sans aucune difficulté. Il ne récupère que le contenu de l'URL que vous avez donné, puis s'arrête. Il n'analyse que si vous le placez manuellement dans une boucle infinie avec certains critères.

En termes simples, avec Beautiful Soup, vous pouvez construire quelque chose de similaire à Scrapy . Beautiful Soup est un bibliothèque tandis que Scrapy est un cadre complet.

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

193
Medeiros

Je pense que les deux sont bons ... je fais un projet en ce moment qui utilise les deux. Tout d'abord, je supprime toutes les pages avec scrapy et les enregistre sur une collection mongodb à l'aide de leurs pipelines, en téléchargeant également les images existantes sur la page . Après cela, j'utilise BeautifulSoup4 pour créer un traitement de poste dans lequel obtenir des étiquettes spéciales.

Si vous ne connaissez pas les pages de produits que vous voulez, un bon outil vous rendra compte que vous pouvez utiliser leurs robots d'exploration pour exécuter tous les sites Web Amazon/eBay à la recherche des produits sans créer de boucle for explicite.

Jetez un coup d'œil à la documentation, très simple à utiliser.

18
rdenadai

La façon dont je le fais est d'utiliser les API eBay/Amazon plutôt que de faire des bêtises, puis d'analyser les résultats à l'aide de BeautifulSoup.

Les API vous offrent un moyen officiel d’obtenir les mêmes données que celles fournies par un robot d'exploration, sans avoir à vous inquiéter de la dissimulation de votre identité, des problèmes de proxy, etc.

3
baldnbad

Les deux utilisent pour analyser les données.

Scrapy :

  • Scrapy est un framework d’exploration et de raclage Web de haut niveau, très rapide, utilisé pour explorer des sites Web et extraire des données structurées de leurs pages.
  • Mais il a certaines limites lorsque les données proviennent de script Java ou Chargement dynamique, nous pouvons le surmonter en utilisant des packages tels que splash, Selenium, etc.

BeautifulSoup :

  • Beautiful Soup est une bibliothèque Python permettant d'extraire des données de fichiers HTML et XML.

  • nous pouvons utiliser ce paquet pour obtenir des données depuis un script Java ou en chargeant dynamiquement des pages.

Scrapy avec BeautifulSoup est l’un des meilleurs combos que nous pouvons utiliser pour supprimer des contenus statiques et dynamiques 

1
Arun Augustine

Scrapy Il s'agit d'un cadre de grattage Web qui vient avec des tonnes de friandises qui facilitent le grattage afin que nous puissions nous concentrer uniquement sur la logique d'exploration. Certaines de mes choses préférées scrapy prend soin de nous sont ci-dessous.

  • Exportations de flux : Cela nous permet essentiellement de sauvegarder des données dans divers formats tels que CSV, JSON, jsonlines et XML.
  • Raclage asynchrone: Scrapy utilise un cadre torsadé qui nous donne le pouvoir de visiter plusieurs URL en même temps, chaque demande étant traitée de manière non bloquante (nous n’avons pas besoin d’attendre la fin de la demande avant d’en envoyer une autre).
  • Selectors : C’est là que l’on peut comparer le scrap avec une belle soupe. Les sélecteurs sont ce qui nous permet de sélectionner des données particulières à partir de la page Web telles que les en-têtes, certaines div avec un nom de classe, etc.). Scrapy utilise lxml pour l'analyse, ce qui est extrêmement rapide qu'une belle soupe.
  • Définition du proxy, de l'agent utilisateur, des en-têtes, etc.: scrapy nous permet de définir et de faire pivoter le proxy et les autres en-têtes de manière dynamique.

  • Pipelines d'éléments : Les pipelines nous permettent de traiter les données après l'extraction. Par exemple, nous pouvons configurer le pipeline pour transmettre des données à votre serveur mysql.

  • Cookies: scrapy gère automatiquement les cookies pour nous.

etc.

TLDR: scrapy est un framework qui fournit tout ce dont on peut avoir besoin pour construire des analyses à grande échelle. Il fournit diverses fonctionnalités qui masquent la complexité de l'analyse des sites Web. on peut simplement commencer à écrire des robots d'exploration Web sans se soucier de la charge d'installation.

Belle soupe Belle soupe est un package Python pour l'analyse Documents HTML et XML . Ainsi, avec Beautiful soup, vous pouvez analyser une page Web déjà téléchargée. BS4 est très populaire et ancien. Contrairement à scrapy, Vous ne pouvez pas utiliser une belle soupe uniquement pour fabriquer des robots d'exploration . Vous aurez besoin d'autres bibliothèques telles que request, urllib, etc. pour créer des robots avec bs4. Encore une fois, cela signifie que vous devez gérer la liste des URL analysées, être analysé, gérer les cookies, gérer le proxy, gérer les erreurs, créer vos propres fonctions pour transmettre des données au format CSV, JSON, XML, etc. Si vous souhaitez accélérer que vous devrez utiliser d'autres bibliothèques comme multitraitement .

Pour résumer.

  • Scrapy est un framework riche que vous pouvez utiliser pour commencer à écrire des robots sans hassale.

  • Beautiful Soup est une bibliothèque que vous pouvez utiliser pour analyser une page Web. Il ne peut pas être utilisé seul pour gratter la toile.

Vous devez absolument utiliser scrapy pour votre site de comparaison de prix de produits Amazon et e-bay. Vous pouvez créer une base de données d'URL et exécuter le robot tous les jours (travaux cron, Celery pour la planification des analyses) et mettre à jour le prix sur votre base de données. De cette manière, votre site Web sera toujours extrait de la base de données et le robot et la base de données agiront comme des composants individuels.

0
Amit

Les différences sont nombreuses et le choix de tout outil/technologie dépend des besoins individuels.

Peu de différences majeures sont:

  1. BeautifulSoup est comparativement facile facile à apprendre que Scrapy. 
  2. Les extensions, support, communauté sont plus grandes pour Scrapy que pour BeautifulSoup.
  3. Scrapy doit être considéré comme un araignée alors que BeautifulSoup est un analyseur .
0
krish___na

En utilisant scrapy vous pouvez économiser des tonnes de code et commencer avec une programmation structurée. Si vous n'aimez aucune des méthodes pré-écrites de scapy, alors BeautifulSoup peut être utilisé à la place de la méthode scrapy . Big projet prend les deux avantages.

0
ethirajit