使用 Ruby 进行网页抓取 – 教程
已发表: 2017-08-24网络数据的显着增长和指数级增长为各个行业开辟了新途径。 从制造单位到服务部门,数据是全球企业为与不断发展的时代保持联系而采用的重要组成部分。 Web 数据不仅拥有有关竞争和市场的信息的金矿,而且还提供可用于改进内部流程和运营的见解。
Web 抓取有助于提取目标在线数据,以供分析引擎或 BI 工具进一步使用。 网络抓取的目标仍然不同——
- 数据提取是宣传您的业务和推广产品/服务的有效方式
- 用户、消费者和 Web 访问者可以获得有关服务或产品的所需信息。
- 公司可以获得有关现有战略和计划的竞争情报,以增加各自的市场份额。
- 品牌可以通过人与人之间的社交媒体互动了解对其品牌的一般看法。 这有助于营销团队设计和部署专门针对该受众角色的相关营销信息,从而提高转化的可能性。
- 企业可以更清楚地了解目标受众的需求、痛点和偏好。 然后,他们可以利用这种宝贵的情报推动产品开发朝着正确的方向发展。
想象一下,如果我们能够构建 Web 数据、消除噪音并将它们导出为机器可读的格式会带来什么好处。 让我们看看如何使用 Ruby 来实现这一点。
编码脚本的选择
数据提取和网络抓取实践的实际实施并非易事。 CSS、HTML 和正确的编码脚本的基本知识将使您的旅程顺利。 您对编码脚本的选择将在这种情况下发挥至关重要的作用。 让我们找出为什么 Ruby 会在市场上引起轰动。
如果您计划启动您的第一个网页抓取程序,Ruby 可以扮演可靠的脚本语言的角色。 这门语言如此受欢迎的原因有很多,以下原因将帮助您理解为什么它如此有效!
- 一个强大的脚本:Ruby-On-Rails 是一个非常强大和有效的网页抓取脚本。 对于初学者和新手来说,这种特殊的语言被证明是一种强大的资源。
- 可靠的社区:Ruby 伴随着强大的开发人员团队,他们组成了一个可靠且高度可靠的社区。 拥有数以百万计的文档,对您来说没有什么大问题!
- 易于安装:安装过程有据可查,而且相当容易遵循。
这些是使 Ruby 成为 Web 抓取不可或缺的选择的一些因素。 设置和安装应以最佳方式完成,因为这些过程对于数据提取过程的执行至关重要。 这是一个全面的教程,可帮助您完成整个过程。
分步指南
在开始之前,让我们先弄清楚某些要点。 本教程面向 Mac 用户,如果您使用不同的机器,初始设置过程可能会略有不同。 其次,该程序使用 Nokogiri,它可以将网页更改为“Ruby 对象”,从而简化网页抓取过程。 考虑到这两个因素,您可以开始您的项目。
在本指南中,我们将抓取 olx 上的前 100 个二手车列表的头条新闻。
设置过程
以下是使用 Ruby 开发完整的 Web 提取设置的基本要求。
- 您的计算机,无论是台式机还是笔记本电脑,都应该安装 Ruby。 如果您是 Mac 的忠实拥护者,那么工作就完成了一半。
- 您将需要一个文本编辑器。 这是写下程序命令所必需的。 如果您的计算机没有内置选项,请尝试下载 Sublime Text。 凭借令人兴奋的功能和酷炫的控件,这个文本编辑器将使编码变得令人兴奋和有趣。
- 另一个必要条件是深入了解 HTML 和 CSS 的使用。 如果你打算掌握网页抓取的艺术,那么 CSS 和 HTML 的知识将是至关重要的。
- 了解 Ruby。 在这种情况下,一些信息是必不可少的。 您可以查看一些在线课程并提高您的知识库。 有了这些流程和因素,就该开始关键步骤了。
第 1 步:安装依赖项
在安装过程中,确保您获得了有关三个有用的 Ruby Gem 的完整信息。 这三个选项包括:
- NokoGiri
- HTTP派对
- 撬
由于我们已经解释了一些关于 Nokogiri 的内容,让我们讨论一下 HTTParty 和 Pry。 HTTParty 是一个 gem,我们的网络抓取工具将使用它向我们正在抓取的页面发送 HTTP 请求。 我们将使用 HTTParty 发送 GET 请求,它将页面的所有 HTML 内容作为字符串返回。 对于调试,我们使用 Pry,它是一个 ruby gem。 它将帮助我们解析网页的代码,并且是此设置中必不可少的组件。

按照以下命令并在您的计算机上运行它们以在您的计算机上安装这些 gem。
宝石安装 nokogiri
宝石安装派对
宝石安装撬
第二步:创建爬虫文件
您必须在计算机上的任何首选位置创建一个名为 nokogiri_tutorial 的文件夹。 桌面是这样做的理想场所。 下一步是下载文本编辑器,如“Sublime Text”或您选择的任何其他选项,并将文件保存到名为“web_scraper.RB”的文件夹中。 完成这些步骤后,您就可以处理依赖项了。
第 3 步:向页面发送 HTTP 请求
首先创建一个名为“page”的变量操作,并确保它等于我们正在抓取的页面的 HTTParty GET 请求。
在这种情况下: https ://www.olx.in/all-results/q-cars/
在此之后,您可以输入“Pry. 开始(绑定)。” 导航并找到标记为 web_scraping.Rb 文件的文件夹。 立即将其保存到您的桌面并通过输入此命令打开终端。
cd 桌面/nokogiri_tutorial
您的网络抓取程序已准备好实施。 您可以运行此命令并运行它:
Ruby web_scraper.RB
终端应该变成 Pry,在处理进一步的过程之前检查布局是必不可少的。 您可以进入下一步。 但是,在您这样做之前,请确保在所选终端中键入“exit”,离开 Pry,然后返回程序文件夹的原始位置。
第 4 步:继续前往 NokoGiri
这里的目标是首先将这些汽车列表转换并更改为 NokoGiri 对象,因为这对于解析至关重要。 变量创建很重要,您必须开发一个名为“parse_page”的新变量。 Nokogiri 有一种将 HTML 字符串转换为 Nokogiri 对象的独特方法。 您可以将 Pry 留在代码底部。
下一步是保存包含 Ruby 命令的文件。 Pry 将自动打开,并应输入一个新变量“parse_page”。 这会将 Olx 页面作为 Nokogiri 对象返回。
继续在同一个文件夹中创建一个名为“cars.html”的 HTML 文件,并将 parse_page 命令的结果复制粘贴到该文件中。 这个格式化的 HTML 数据将派上用场,供以后参考。
在开始下一步之前,从终端中的 Pry 退出。
第 5 步:数据解析
数据解析需要编程和编码的基本知识。 由于您要提取所有汽车列表的标题文本,因此 cars.html 文件将在交叉检查中派上用场。 从文件夹中找到关键元素并使用“检查元素工具”执行检查,或者您也可以查看“页面源代码”。
由于我们发现列表位于类名为“content”的 div 中,因此以下是以下命令:
parse_page.css('.content')
parse_page.css('.content').css('.row').css('.hdrlnk')
汽车数组
每次运行命令时检查编码布局和数组。 解析完成后,您必须将数据集导出为 CSV 文件。
第 6 步:将数据文件导出为 CSV
当您到达第 6 步时,您应该已成功完成抓取过程,并且将非结构化数据更改为结构化数据集。 现在让我们回到终端。 如果您仍在其中,请退出 Pry,以便您的终端位于包含抓取程序和 cars.html 文件的 nokogiri_tutorial 文件夹中。 现在输入以下命令:
触摸汽车.csv
现在您将得到一个空白 CSV 文件,您可以将 cars_array 中的数据保存到该文件中。 您现在可以编写一个简单的脚本来将此数据写入我们的新 CSV 文件,并且您在 CSV 文件中拥有结构化的汽车列表数据。 这将使您在需要时更容易处理和操作。
离别的思念
希望这应该让您大致了解如何使用 Ruby 抓取网站。 是时候使用这项新掌握的技能来探索和抓取更复杂和更具挑战性的网站了。
