我想制作一个网站,展示亚马逊和eBay产品价格的比较。哪个更好并且为什么? 我对BeautifulSoup有一些了解,但不太了解Scrapy爬虫。
我想制作一个网站,展示亚马逊和eBay产品价格的比较。哪个更好并且为什么? 我对BeautifulSoup有一些了解,但不太了解Scrapy爬虫。
Scrapy 是一个用于爬取网站或抓取网页数据的框架。你可以指定一个起始 URL,然后约束它要爬取和获取的 URL 数量等。它是一个完整的网络爬虫框架。
BeautifulSoup 是一个解析库,也能够很好地抓取 URL 的内容,并允许你轻松地解析其中的某些部分。它只会获取你给出的 URL 的内容,然后停止。除非你手动将其放在具有某些条件的无限循环内,否则它不会执行任何爬取操作。
简单来说,使用 Beautiful Soup 你可以构建类似于 Scrapy 的工具。Beautiful Soup 是一个库,而 Scrapy 是一个完整的框架。
我认为两者都很好...我现在正在做一个项目,同时使用这两个工具。首先,我使用Scrapy爬取所有的页面,并使用他们的管道将其保存在MongoDB的集合中,还下载页面上存在的图片。
之后,我使用BeautifulSoup4进行后处理,必须更改属性值并获取一些特殊标记。
如果您不知道想要哪些页面产品,那么一个很好的工具是Scrapy,因为您可以使用它们的爬虫程序在所有亚马逊/易趣网站上运行,而无需进行显式的for循环操作。
请查看Scrapy文档,它非常简单易用。
Scrapy Scrapy是一个网络爬虫框架,提供了许多好处,使得我们可以更轻松地进行爬取,从而专注于爬取逻辑。以下是Scrapy为我们处理的一些我最喜欢的事情。
设置代理、用户代理、标头等:scrapy允许我们动态设置和旋转代理和其他标头。
Item Pipelines:管道使我们能够在提取数据后处理数据。例如,我们可以配置管道将数据推送到您的mysql服务器。
Cookies:scrapy会自动处理cookies。
等等。
TLDR: scrapy是一个框架,提供了构建大规模网络爬虫所需的一切。它提供了各种功能,隐藏了爬行网站的复杂性。用户可以简单地开始编写网络爬虫,而不必担心设置负担。 Beautiful soup Beautiful Soup是一个用于解析HTML和XML文档的Python软件包。因此,使用Beautiful Soup可以解析已经下载的网页。BS4非常流行和古老。与scrapy不同,你不能仅使用beautiful soup制作爬虫。你需要其他库,如requests、urllib等来使用bs4进行网络爬虫。这意味着你需要管理正在被爬取的URL列表、处理cookies、管理代理、处理错误、创建自己的函数将数据推送到CSV、JSON、XML等。如果你想加速,就需要使用其他库,如multiprocessing。你绝对应该使用Scrapy来建立亚马逊和eBay产品价格比较网站。你可以建立一个URL数据库,并每天运行爬虫程序(cron jobs,Celery用于安排爬取),并更新数据库中的价格。这样你的网站将始终从数据库中提取数据,而爬虫程序和数据库将作为独立的组件。
两者都用于解析数据。
Scrapy:
BeautifulSoup:
Beautiful Soup是一个用于从HTML和XML文件中提取数据的Python库。
我们可以使用此软件包从JavaScript或动态加载的页面中获取数据。
Scrapy与BeautifulSoup结合使用是我们可以用来爬取静态和动态内容的最佳组合。
BeautifulSoup 是一个库,它可以让你从网页中提取信息。
而 Scrapy 则是一个框架,它不仅可以像 BeautifulSoup 一样提取信息,还可以为你的爬虫项目提供许多其他功能,例如用于保存数据的管道。
你可以查看这篇博客来开始使用 Scrapy:https://www.inkoop.io/blog/web-scraping-using-python-and-scrapy/
我的做法是使用eBay/Amazon API而不是scrapy,然后使用BeautifulSoup解析结果。
API提供了一个官方的方式来获取与scrapy爬虫相同的数据,无需担心隐藏身份、处理代理等问题。
差异很多,选择任何工具/技术都取决于个人需求。
一些主要的区别包括: