捕获和转换Web的工具

Web Scraper文档

为了创建网页抓取,您必须指定五类信息,这些信息分布在以下选项卡中。

  1. 抓取选项
  2. 目标网站
  3. 刮刮说明
  4. 导出选项
  5. 时间表刮

抓取选项

以下所有功能均可在“抓取选项”选项卡上自定义Web抓取。

刮板名称 刮板的名称。

追踪连结 提供有关刮板应如何遵循链接的以下选项:

  • 根据需要-默认设置和最安全的选项,这将使抓取工具仅遵循其指示的链接
  • 所有页面-抓取工具将跟踪其找到的每个链接
  • 第一页-仅跟随第一页上指定为目标的链接
  • 高达 n 从初始页开始的页面-仅跟随首页上指定点击次数的页面上的链接
  • 在框架中-跟随在框架和iframe中找到的链接

忽略Robots.txt文件 如果设置,则抓取工具可以访问通常不被网站所有者抓取的网页。

忽略文件下载 一旦设置了任何链接,就不会下载导致访问时下载文件的链接。

忽略重复 如果设置,它将忽略等于或大于您设置的相似度的页面,例如,您可以忽略95%相同的页面。

极限刮擦 允许您指定Web刮板在停止之前应刮刮多少页。

使用我的时区 如果设置,则表示Web抓取工具应尝试转换其抓取的任何日期 into您当地的时区。 可以在帐户页面上设置您的时区。

位置 Web抓取工具将执行抓取操作的地理位置。 如果目标网站有基于位置的限制,这可能会很有用。

默认日期格式 当转换无法确定日期格式的日期时,Web抓取工具将默认使用此所选格式。

页面加载延迟 这是Web Scraper在解析页面之前应等待的时间(以毫秒为单位)。 如果页面包含大量AJAX或加载缓慢,这将非常有用。

目标网站

目标网站

在“目标网站”选项卡中,指定要从中提取数据的网站。 要告诉抓取工具从网站提取数据,您首先必须指定主网址 int迷恋于 http://www.example.com/shop/ 这是刮板将开始刮板的地方,它可以是普通网页,PDF文档,XML文档,JSON文档,RSS feed或站点地图。 如果不是网页或PDF文档,则抓取工具将在文件中找到所有链接,并访问每个链接。

要仅跟踪在目标网址中找到的链接,而不能跟踪任何后续页面,则可以设置 追踪连结 刮擦选项在第一页。 这将仅使用目标URL来填充其余的抓取内容。

默认情况下,Web爬虫将跟踪它在其访问的每个网页上发现的每个链接。 如果您想限制哪些链接, 网页刮板 接下来,执行此操作的一种简单方法是指定URL模式。 这通过将带有星号的URL指定为通配符来工作,以表示该模式的此部分中可以存在任何字符。 例如 http://www.example.com/*/articles/* 将从网站根目录中抓取所有包含文章作为第二目录的URL。

该URL还可以指定一个带有POST参数的URL,例如登录表单。 为此,在“目标URL”文本框中指定表单URL,然后添加要使用的必需的post参数。 发布变量值还可以包括特殊的GrabzIt变量,例如:

  • {{day}} –天为两位数值
  • {{month}} –月为两位数值
  • {{year}} –年(四位数)
  • {{hour}} –小时为两位数值
  • {{minute}} –分钟为两位数值
  • {{second}} –秒,两位数

最后,您可以指定 种子网址 以确保这些网址被抓取。

种子网址

种子URL允许用户指定Web爬网程序必须爬网的URL列表。 如果只希望抓取种子网址,请设置 追踪连结 刮擦选项没有页面 在“抓取选项”标签中。

要在“目标网站”选项卡上设置“种子URL”,请单击“添加目标”按钮,然后选中“设置种子URL”复选框,并指定每个要刮擦的URL。

从模板URL创建种子URL

或者,您可以使用模板URL自动生成种子URL,这是一个包含URL变量的URL。 URL变量指定要迭代的数字范围。

{{start number|finish number|iterate number}}

  • 起始号码 URL变量的起始编号
  • 结束号码 URL变量结尾的数字
  • 重复编号 URL变量迭代的数字

起始编号是URL变量应开始计数的数字,结束编号是URL变量将停止计数的数字,迭代数是URL变量每次迭代将增加的数字。

例如以下模板URL http://www.example.com/search?pageNo={{1|3|1}}

然后,将创建以下种子URL:

  • http://www.example.com/search?pageNo=1
  • http://www.example.com/search?pageNo=2
  • http://www.example.com/search?pageNo=3

刮刮说明

抓取指令告诉Web抓取器在抓取目标网站时要执行哪些操作。 “抓取指令”选项卡默认情况下显示抓取向导,这使添加所需的抓取指令变得容易。 要开始使用,请按 添加新的抓取指令 链接。

这将打开向导并自动加载目标URL,使您可以立即选择要抓取的内容。 如果已加载网页或PDF文档,则可以单击任何链接,它将正常运行,例如导航到另一个网页。 在此屏幕上,您选择屏幕底部的操作之一之前,int 对内容的任何点击都会选择您要提取或操作的HTML元素。

了解刮刮指令的第一件事是默认情况下它们在每个网页上执行。 阻止这种情况的方法是使用模板。 可以在执行诸如单击链接之类的操作时将模板分配给该模板,这样,只要刮板访问该链接或单击该按钮,它就会识别出它属于已分配的模板。 这允许定义不同的页面类型。 例如,您可能有一个包含一些概述信息的产品类别页面,然后是一个包含产品信息的详细信息页面。 两个页面可能都需要一组不同的抓取指令。

刮板模板

要开始使用,请选择 点击 操作,然后选择要对其执行操作的项目并点击 下一页 按钮,在中输入模板的名称 创建一个模板 现在,无论何时刮板执行这些操作,返回的模板都将是您提供的名称。

然后,要将特定模板分配给抓取指令,您需要从 在执行 下拉列表,出现在添加刮指令之前的选项窗口中。 选择模板时的三个主要选项如下:

  • 所有网页 -请勿使用模板,因为此刮取指令将在所有网页上执行。
  • 默认模板 -不要使用用户定义的模板之一。 抓取指令将在任何未指定模板的网页上执行。
  • 用户定义的模板 -您已定义的模板之一,用于标识特定的网页或操作。

选择这些选项之一后,抓取指令将仅在指定的模板上执行。

提取数据

您会注意到,当您选择 提取数据 一系列操作可立即提取的数据项可在屏幕的左下角下载。 这些是您可以下载的整个页面的属性。 要选择一个,只需从选项列表中选择它,然后单击 下一页 将数据添加到 数据集.

如果您希望提取特定HTML元素中的数据而不是属于整个页面,则需要单击相关HTML元素,则可以选择单个或多个项目。 但是,如果您要选择多个项目,请尝试选择多个相同的项目,例如一列中的多行,因为如果刮板无法创建可以唯一标识所选数据集合的规则,则刮板指令将不会能够被创建。 此外,如果我们的网页抓取工具向导已将您单击的多个项目标识为重复数据,则将自动选择同一组中的所有重复数据。 选择所有单个或多个项目后,选择要从屏幕左下方提取的属性,然后单击 下一页.

创建数据集

数据集屏幕允许您更改数据的处理方式,例如,您可以重命名数据集及其中的列,只需单击名称即可重命名。 将列添加到数据集时,还需要选择应在其上执行的模板。您可以通过单击列名称下的下拉列表来更改此模板。

通常,在提取数据时,某些重复项不一致地重复是很常见的,以确保正确的行仍然彼此关联,请使用 链接列 条件,以将不一致的列与数据集中最一致的列链接起来。

要将更多数据添加到数据集,请单击 按钮,或单击 从数据集中删除数据,或 删除整个数据集。 数据集还允许将各种标准应用于数据,为此,请从顶部选择所需的操作,然后单击相关列以应用标准。 如果您输入标准有误,只需点击 按钮。

以下是不同条件类型及其使用方式的列表:

  • 限制行 -这会将从网页提取的行数限制为您定义的行数。 要使用点击 然后单击超出的行,然后将其剪掉。
  • 重复新密码 -重复列项目,直到该列与最长列的长度匹配为止。 要使用,只需单击 然后单击您要重复其项目的列。
  • 变得独特 -删除所有输入值的重复值 intoa列。 要使用,只需单击 然后单击您要使其唯一的列。
  • 提取值 -指定一种模式,仅从文本块中提取匹配的数据项。 要使用,只需单击 ,选择相关列,然后按照说明创建一个模式,该模式将从 string.
  • 修剪值 -指定一种模式以修剪多余的文本。 要使用,只需单击 ,选择相关的列,然后按照说明创建可修剪文本的图案。
  • 链接列 -允许将列链接在一​​起。 这样,在提取数据时,即使结果数量不匹配,记录也会与链接列中的相对行显示在同一行上。 要使用,只需单击 ,选择要链接的列,然后选择要链接的列。
  • 隐藏栏 -有时您想包括要过滤的列,但不想在最终结果中包括值。 为此,只需单击 ,然后选择要排除的列。
  • 升序 -按列排序,升序。 要使用点击 然后选择要排序的列。
  • 降序排列 -按列排序,降序排列。 要使用点击 然后选择要排序的列。
  • 包含 -仅包括包含定义值的值。 要使用点击 选择所需的列,然后输入列值应包含的值。
  • 等于 -仅包括等于定义值的值。 要使用点击 选择所需的列,然后输入列值应等于的值。
  • 不等于 -仅包括不等于定义值的值。 要使用点击 选择所需的列,然后输入该列不应等于的值。
  • 少于 -仅包括小于定义值的值。 要使用点击 选择所需的列,然后输入该列应小于的值。
  • 比...更棒 -仅包括大于定义值的值。 要使用点击 选择所需的列,然后输入该列应大于的值。

选择上述操作之一后,如果它可以影响多个列,它将询问您是否只希望它影响列的一部分或全部。 在大多数情况下,您希望它影响所有列,但是在某些情况下,限制受影响的列很有用。 例如,如果您选择一系列 标签和值,它可以改变网页的位置,您可以选择所有标签和值。 然后在数据集中使用equals操作将其限制为所需的标签,并指定仅应影响label和value列。 这将确保其他列不受删除行的影响,出于完整性考虑,隐藏标签列将很有用。

修改完所有内容后,请点击 下一页 并且,您的抓取说明将添加到抓取中。

操纵网页

通过在下拉菜单中单击,键入和选择值,可以在抓取网页之前对其进行操作。 重要的是要记住,即使这可能导致新网页加载,在执行所有适用的抓取指令之前,抓取指令也不会重新启动。

要操作网页,请选择 点击元素, 悬停元素, 滚动, 输入文字 or 选择下拉列表值 动作。 如果要执行单击操作,则可以单击网页上任意数量的元素。 否则,您必须选择适当的HTML元素,例如,应在文本框中键入文本。 然后点击 下一页。 这将打开一个选项框,使您可以完成操作。 在键入文本并从下拉菜单中选择时,必须分别选择要键入或选择的数据。 除此之外,这三个动作的选项都相同。

如果您希望选择模板,则应在此操作中执行该操作;对于单击操作,单击操作完成后,将应用哪个模板。 但是,将新模板分配给在同一页面上执行多次单击的单击操作不是一个好主意,例如,打开嵌入式弹出窗口或使事物显示在屏幕上。 这是因为,如果单击操作仅在某些模板上执行,则不会重置由第一次单击分配的新模板,因此,根据刮擦的编写方式,这可能会阻止以后再次执行同一页面上的单击。 您还可以定义是否只希望执行一次此操作,这在执行诸如login之类的操作时非常有用 intoa网站。

使用“键入文本”或“选择下拉列表值”操作,您可以分别键入多个文本项或进行多个选择框选择。 可以通过单击刮刮说明进行编辑 更改或查看变量 按钮,如左侧的屏幕截图所示。

例如,如果要在搜索框中键入名称列表,这可能很重要。 为了确保仅在搜索框中有值时才提交表单,每次成功键入文本时都可以设置一个模板 into除非设置了此模板,否则不会执行文本框和按钮上的单击操作。 在执行点击操作之后,然后需要将模板更改为其他内容,以重置该过程。

在执行操作网站的操作之后,如果操作启动了AJAX功能,则需要等待一段时间,以便在继续抓取之前加载AJAX内容,这很有用。 您可以通过在 执行后等待 文本框。

满足某些条件后,您可能希望直接跳转到其他URL。 为此,请使用 转到URL 仅在刮板上定义了至少一个模板并且必须将创建后的模板分配给模板时才会显示该操作,以帮助避免无限循环。

最后,您可以在网页抓取中使用所有GrabzIt的捕获API,只需选择“捕获网页”操作,然后选择所需的捕获即可。 您可以通过指定要在模板中执行的模板来限制抓取中的某些网页 下一页 按钮。

添加每个刮擦指令后,可以在“刮擦指令”面板中看到它,每个刮擦指令旁边的叉号都可以删除该刮擦指令。 如果删除了其他刮擦指令所需的刮擦指令,则这些指令也将被删除。 您可以通过拖动带有抓取图标的任何刮擦指令来更改刮擦指令的顺序。

手动编写刮刮说明

如果您需要以更特定的方式自定义抓取指令,或者希望执行代码 刮擦之前或之后 您将需要手动更改刮削说明。

抓取指令基于JavaScript,代码编辑器附带语法检查器,自动完成和工具提示,以使其尽可能地容易。

Web刮板说明 可以通过菜单选项访问代码编辑器的核心功能,如屏幕截图所示,每个功能的目的在下面分别说明。 尽管抓取指令中的任何语法错误都在代码编辑器的左侧装订线中指示。

向导 该向导允许您选择要提取的页面部分,并执行其他常见任务,例如创建Web捕获。

显示抓取说明 向用户显示刮削指令代码。

删除所有说明 删除所有刮刮指令。

网页功能 将输入Page关键字 into抓取说明并打开自动完成功能,其中包含所有可能的操作 页面功能。 页面功能使您可以从网页中提取数据。

数据功能 将输入数据关键字 into刮刮说明。 数据功能 让你 save 信息。

导航功能 输入导航关键字 into代码编辑器。 的 导航功能 允许您控制Web爬网程序如何导航目标网站。

全局功能 输入Global关键字 into刮刮说明。 这使您可以访问 功能 可以在解析不同的网页之间存储数据。 在编写抓取指令时,请务必记住,当抓取器在网页之间移动时,抓取指令中的JavaScript变量状态不会保留,除非您使用Global函数 save 变量,如下所示。

Global.set("myvariable", "hello");
var mrvar = Global.get("myvariable");

要创建持久性全局变量,请在Global.set方法中将true传递给persist参数,如下所示。

Global.set("myvariable", "hello", true);

实用功能 输入Utility关键字 into刮刮说明。 这使您可以使用 常用功能 使编写拼写更容易,例如添加或删除查询string URL中的参数。

准则功能 输入Criteria关键字 into刮刮说明。 这些 功能 允许您优化在抓取期间提取的数据,例如消除重复项。

筛选 允许您轻松创建过滤器,某些功能需要此过滤器才能从网页中选择特定的HTML元素。 只需选择目标元素应具有的属性和/或元素的父级必须选择该元素。 确保在单击此选项之前,光标也位于函数中的正确位置以通过过滤器。

屏幕截图功能 允许您设置屏幕截图选项。 只需将光标置于工具提示所标识的功能的正确部分,然后按屏幕截图选项。 然后选择所需的所有选项并插入命令。

抓取之前或之后执行操作

您可以使用“抓取指令”选项卡顶部的选项下拉列表在抓取之前或之后运行命令。 当输入任何命令 刮后执行 选择将在刮擦完成后运行。 当输入任何命令时 刮前执行 被选中将在刮板开始之前运行。

但是,在这两种特殊模式中的任何一种下,只有刮擦指令的一个子集可用。 可用的命令是“数据”,“全局”和“导航”抓取指令。

Strings

String在执行网页抓取时,在抓取指令中使用s来定义文本。 一种 string 以双(")或单引号(')。 如果一个 string 以双引号开头,如果 string 以单引号开头,必须以单引号结尾。 例如:

"my-class" 'my-class'

可能发生的常见错误是未公开 string 错误,这是当 string 没有如上所示的结尾报价,或者 string。 以下是非法的 strings:

"my
class"

"my class

解决此错误的方法是确保它们不包含换行符并具有匹配的引号,如下所示:

"my class" "my class"

有时您希望单引号或双引号出现在 string。 最简单的方法是在单引号中 string 用双引号和双引号分隔 string 用单引号分隔,如下所示:

"Bob's shop" '"The best store on the web"'

另外,您可以使用反斜杠将引号转义,如下所示:

'test\'s'

常见的手动抓取任务

链接检查器 创建一个自定义链接检查器 -按照以下简单说明,了解如何创建自定义链接检查器。
图像下载 从网站下载所有图像 -了解如何从整个网站下载所有图像。
创建数据集 提取数据并进行转换 intoa数据集 -了解如何从要抓取的网站创建数据集。
提取链接 从网站中提取链接 -了解如何从整个网站提取所有HTML链接,以及 save 它们以您想要的格式。
选择文字 使用模式从文本中提取值 -了解如何使用模式从文本块中提取值。
OCR 从图像中提取文本 -了解如何提取图像中包含的文本。
数据集 如何填充数据集 -使用填充更好地格式化提取的数据。
排列 操纵数组 -了解如何使用特殊的数组实用程序方法轻松处理刮擦中的数组。
操作 刮擦期间仅执行一次操作 -了解如何在整个抓取过程中仅执行一次操作。
提炼 完善抓取的数据 -了解如何从剪贴簿中删除不需要的数据。
电邮地址 从网站抓取电子邮件地址 -了解如何从网站上抓取所有电子邮件地址。
截图 屏幕截图整个网站 into PDF或图像 -了解如何使用GrabzIt的Web抓取工具捕获整个网站的每个页面。
截图 从非结构化文本中提取结构化信息 -使用GrabzIt提取情绪,姓名,位置和组织。

刮除HTML以外的内容

当Web Scraper遇到PDF,XML,JSON和RSS时,它将把它转换为HTML近似值,这使我们的Web Scraper可以正确地解析它,并且您可以选择要提取的内容。 例如,如果您想解析JSON数据,它将转换数据 int分层HTML表示,如侧面所示。 这使您可以像往常一样构建刮削指令。

刮板以类似的方式加载PDF文档时,将转换PDF into HTML,允许选择和抓取图像,超链接,文本和表格。 但是,由于PDF没有真正的结构,因此表是使用启发法来标识的,因此并不总是准确的。

导出选项

此选项卡允许您选择希望如何导出结果,包括Excel电子表格,XML,JSON,CSV,SQL命令或HTML文档在内的选项。 此外,此选项卡允许设置压缩刮擦结果的名称。 如果仅下载文件或创建Web捕获,则无需选择导出选项,因为您将仅收到包含结果的ZIP文件。 此选项卡还允许您指定希望如何发送结果。 您可以通过发送结果 亚马逊S3, Dropbox的, 电子邮件通知, 则fTP 的WebDav.

最后一个选项是回调网址,通过使用我们的网址,我们可以在您的应用程序中处理抓取结果 抓取API.

可以通过取消选中“使用默认文件名”选项并设置所需的文件名来设置压缩结果或每个数据文件(如果您要求将它们单独发送)的文件名。

时间表刮

创建Web剪贴簿时,可以使用“计划剪贴簿”选项卡设置开始剪贴簿的时间以及重复的频率(多长时间一次)。

监视和调试废品

网站抓取启动后,状态图标将变为 并且已处理的页面将随着时间而增加。 定期生成刮擦进度的实时快照,并生成日志文件以及刮擦器遇到的最后一个网页的常规屏幕截图。 这使您可以查看刮擦期间发生的情况。 要查找此信息,请单击您的抓取旁边的展开图标,然后单击 查看器 为了抓 int清除。如果有任何错误(例如,您的抓取说明有问题),则应详细说明。

刮擦成功完成后,状态图标将切换为 ,如果通过打开查看器没有结果,则日志和最后的屏幕截图可能会告诉您出了什么问题。

日志中报告的最常见问题之一是没有足够的渲染延迟来抓取页面,通常是 页面加载延迟 发现于 抓取选项 标签对于大多数网站来说就足够了。