BeautifulSoup和Scrapy爬虫之间的区别?

Nis*_*kta 128 python beautifulsoup web-crawler scrapy

我想建立一个网站,显示亚马逊和电子海湾产品价格之间的比较.哪个更好,为什么?我对BeautifulSoup有点熟悉,但与Scrapy爬虫不太相似.

Med*_*ros 220

Scrapy是一个Web蜘蛛或Web scraper框架,您为Scrapy提供了一个根URL以开始爬网,然后您可以指定要爬网和获取的URL数量(约束)的约束等.它是一个完整的网页抓取或抓取框架.

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

简单来说,使用Beautiful Soup可以构建类似于Scrapy的东西.美丽的汤是一个图书馆,而Scrapy是一个完整的框架.

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


小智 18

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

如果你不知道你想要哪些页面产品,一个好的工具将是scrapy,因为你可以使用他们的爬虫来运行所有amazon/ebay网站寻找产品而不需要明确的循环.

看一下scrapy文档,它使用起来非常简单.


Ami*_*mit 7

Scrapy 这是一个网页抓取框架,它带有大量的好东西,使抓取更容易,这样我们就可以只专注于抓取逻辑。下面是scrapy为我们提供的一些我最喜欢的东西。

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

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

  • Cookies:scrapy 会自动为我们处理 cookie。

等等。

TLDR:scrapy 是一个框架,它提供了构建大规模爬网可能需要的一切。它提供了各种隐藏网络爬行复杂性的功能。可以简单地开始编写网络爬虫,而不必担心设置负担。

Beautiful Soup Beautiful Soup 是一个用于解析 HTML 和 XML 文档的 Python 包。因此,使用 Beautiful Soup,您可以解析已下载的网页。BS4 非常流行和古老。与scrapy不同,你不能只用漂亮的汤来制作爬虫。您将需要其他库,如请求、urllib 等,以使用 bs4 制作爬虫。同样,这意味着您需要管理正在被抓取的 url 列表,被抓取,处理 cookie,管理代理,处理错误,创建您自己的函数以将数据推送到 CSV、JSON、XML 等。如果您想加快速度比您将不得不使用其他库,如multiprocessing

总结。

  • Scrapy 是一个丰富的框架,您可以使用它轻松开始编写爬虫程序。

  • Beautiful Soup 是一个可以用来解析网页的库。它不能单独用于刮网。

你绝对应该为你的亚马逊和 e-bay 产品价格比较网站使用scrapy。您可以构建一个 url 数据库并每天运行爬虫(cron 作业,Celery 用于安排爬网)并更新数据库上的价格。这样您的网站将始终从数据库中提取,爬虫和数据库将充当单独的组件。