美丽汤和痒痒爬虫的区别?

我想做一个网站,显示之间的亚马逊和易趣产品的价格比较。 其中哪些将工作得更好,为什么? 我有点熟悉的 美味汤,但不是这么多与 挠痒痒的爬虫

88831 次浏览

我认为两者都很好... 我正在做一个项目,使用两者。首先,我使用 scrapy 废弃所有的页面,并使用它们的管道将其保存在一个 mongodb 集合中,同时下载页面上存在的图像。 之后,我使用 BeautifulSoup4进行后期处理,在这里我必须更改属性值并获得一些特殊的标记。

如果你不知道你想要什么样的页面产品,一个好的工具将是杂乱无章的,因为你可以使用他们的抓取程序运行所有的亚马逊/易趣网站寻找产品,而不需要一个明确的 for 循环。

看一下 Scrapy 文档,它的使用非常简单。

Scrapy 是一个网络爬虫或者 网页刮板机结构网页刮板机结构,你给 Scrapy 一个根 URL 来开始爬行,然后你可以指定你想要爬行和获取的 URL 的数量限制,等等。它是一个完整的网页抓取框架或 爬行

同时

BeautifulSoup 是一个 解析库,它也能很好地从 URL 获取内容,并且允许您毫不费力地解析它们的某些部分。它只获取您提供的 URL 的内容,然后停止。它不会爬行,除非您手动将其放入具有某些条件的无限循环中。

简单地说,用 Beautiful Soup 你可以建立一些类似 Scrapy 的东西。 靓汤是 图书馆而 Scrapy 是 完整的框架

来源

我的方法是使用 eBay/Amazon API 而不是 scrapy,然后使用 BeautifulSoup 解析结果。

这些 API 为您提供了一种正式的获取数据的方法,这些数据与您从 Scrapry 爬虫获得的数据相同,不需要担心隐藏您的身份、乱搞代理等问题。

两者都用于解析数据。

Scrapy :

  • Scrapy 是一个快速的高级 web 抓取和 web 抓取框架, 用于抓取网站和从网页中提取结构化数据。
  • 但是,当数据来自 Java 脚本或 动态加载,我们可以通过使用诸如 splash 之类的包来克服它, 硒等。

靓汤 :

  • Beautiful Soup 是一个 Python 库,用于从 HTML 和 XML 文件

  • 我们可以使用这个包从 java 脚本或 动态加载页面

Scrapy 与 BeautifulSoup 是我们可以使用的最佳组合之一,用于刮取静态和动态内容

使用 头皮屑,你可以节省大量的代码,并开始与结构化编程,如果你不喜欢任何一个 scyy 的预先编写的方法,那么可以使用 美味汤代替 scrapy 方法。 大项目兼具两种优势。

差异很大,任何工具/技术的选择都取决于个人的需要。

几乎没有什么重大区别:

  1. 比起 Scrapy 来,BeautifulSoup 是 很容易学
  2. Scrapy 的扩展、支持和社区比 BeautifulSoup 更大。
  3. Scrapy 应该被认为是 蜘蛛,而 BeautifulSoup 是 解析器

Scrapy 这是一个 网页抓取框架网页抓取框架,它带来了吨的好处,使刮从容易,所以我们可以专注于爬行逻辑只。下面是一些我最喜欢的东西。

  • Feed export : 它基本上允许我们以各种格式保存数据,比如 CSV、 JSON、 jsonlines 和 XML。
  • 异步抓取: Scrapy 使用了一个扭曲的框架,使我们能够一次访问多个 URL,每个请求都以非阻塞的方式处理(基本上我们不必等到一个请求完成后再发送另一个请求)。
  • 选择器 : 这是我们可以比较好斗与美丽的汤。选择器允许我们从网页中选择特定的数据,比如标题、带类名的 div 等等。Scrapy 使用 lxml 进行解析,这比靓汤要快得多。
  • 设置代理,用户代理,头等: Scrapy 允许我们设置和旋转代理,和其他头动态。

  • 项目管道 : 管道使我们能够在提取后处理数据。例如,我们可以配置管道将数据推送到 mysql 服务器。

  • 饼干: Scrapy 自动为我们处理饼干。

等等。

Scrapy 是一个提供所有可能的东西的框架 需要建立大规模的爬行。它提供了各种功能 隐藏爬行网页的复杂性。一个人可以简单地开始写网页 不用担心安装负担的爬行器。

美味的汤 Beautiful Soup 是用于 解析 HTML 和 XML 文档的 Python 包。因此,通过靓汤,你可以解析一个已经下载的网页。BS4是非常流行和古老的。不像羊搔痒症 你不能只用漂亮的汤来制造爬行动物。您将需要其他库,如 request、 urllib 等,以便使用 bs4制作爬虫程序。同样,这意味着您需要管理被抓取的 URL 列表、被抓取的 URL 列表、处理 cookie、管理代理、处理错误、创建自己的函数来将数据推送到 CSV、 JSON、 XML 等。如果你想提高速度,你将不得不使用其他库,如 多重处理

总而言之。

  • Scrapy 是一个丰富的框架,您可以使用它来开始编写爬虫程序 没有任何麻烦

  • 美丽的汤是一个库,你可以用来解析一个网页。它 不能单独用来刮网

你肯定应该使用 Scrapy 为您的亚马逊和 e-bay 产品价格比较网站。您可以建立一个 url 数据库并每天运行爬虫程序(cron 作业,用于调度爬虫的芹菜)并更新数据库上的价格。这样,你的网站将始终拉从数据库和爬虫和数据库将作为单独的组件。

BeautifulSoup 是一个可以从网页中提取信息的库。

另一方面,Scrapy 是一个框架,它完成上面的工作,以及在您的抓取项目中可能需要的更多事情,比如保存数据的管道。

你可以查看这个博客来开始 Scrapy Https://www.inkoop.io/blog/web-scraping-using-python-and-scrapy/

靓汤是网络刮小库。它做你的工作,但有时它不能满足你的需求。我的意思是,如果你刮网站的大量数据,所以在这里,在这种情况下,美丽汤失败。

在这种情况下,您应该使用 Scrapy,这是一个完整的抓取框架,将做您的工作。 Scrapy 还支持数据库(所有类型的数据库) ,因此它是一个巨大的 比其他网页抓取库的抓取。

长话短说:

Scrapy 是多功能工具 BS4是小刀。

下面是每个人的个人经历:

Scrapy:

  1. 沉重
  2. 可能会出现安装依赖项的问题
  3. 需要时间去掌握
  4. 良好的支持和记录,始终与一个大型和活跃的社区
  5. 快速提取
  6. 适合干大事
  7. 有一个本地的 (可以将代码部署到云中,然后在完成之前忘记它)
  8. 有一个天生的 空气污染指数
  9. 各种设置和附加组件(中间件) ,允许您微调您的代码到最细微的细节。
  10. 高度结构化的代码
  11. 易于与 居民代理集成,并提供 中间件的 IP 旋转。
  12. 方便的信息(云)接口,便于调试interface

Bs4:

  1. 轻量级的
  2. 安装速度快
  3. 学得很快
  4. 又快又脏的代码
  5. 适用于简单的任务
  6. 适用于测试点和假设
  7. 可以从 chrome dev 工具中使用 curl,并将 curl 转换为请求,然后直接在代码中使用结果来处理依赖 cookie 的站点或复杂的帖子请求。

使用 Bs4如果您刚刚开始或使用刮一次在一段时间的小项目。

使用 Scrapy如果你是一个专业的网页刮板机,必须处理大规模的数据收集,并运行了很长时间的刮板机。