四、选择器(Selectors)
如上图,Web Scraper 有多种选择器类型,用于网站多种交互逻辑下需求各异的数据抓取。这些选择器可按功能分为 3 组:
1、Data extraction(数据提取 )选择器用于数据提取
2、Link(链接)选择器用于站点导航
3、Element(元素)选择器用于从分隔的多个记录中选择元素
Date extraction 选择器
Date extraction 选择器仅从选中的元素中返回数据。譬如 Text (文本)选择器从选中的元素中提取文本。以下选择器可用作 Date extraction 选择器:
1)Text(文本)选择器
2)Link(链接)选择器
3)Link popup(弹出链接)选择器
4)Image(图像)选择器
5)Table(表格)选择器
6)Element attribute(元素属性)选择器
7)HTML 选择器
8)Grouped(组块)选择器
Link 选择器
Link 选择器从链接中提取 URL,后续可用于数据提取。比如,如果在一个 sitemap 中有个 LInk 选择器有三个子 Text 选择器,Web Scraper 会从 Link 选择器中提取所有链接,然后打开每个链接,使用子 Date 选择器提取数据(此处指那 3 个 Text 选择器)。当然,Link 选择器的子选择器可以仍为 Link 选择器,这些子选择器用于在页面间导航。目前有以下两个 Link 选择器可供使用:
1)Link (链接)选择器
2)Link popup (弹出链接)选择器
Element 选择器
Element 选择器用于选择元素包含多个数据元素的情况。比如,Element 选择器可用于在电子商务网站上选择多个项目,返回包含子选择器的母选择器。子选择器之从母选择器选择的元素范围中提取数据。以下是可用的 Element 选择器:
1)Element(元素)选择器
2)Element scroll down(元素下拉)选择器
3)Element click(元素点击)选择器
选择器设定选项
如上图,每个选择器都有设定选项。以下是常见的设定选项。选择器专有的设定选项参见随后各选择器说明文档。
1)selector - CSS 选择器选取所需元素
2)multiple - 如果要选择多个记录需勾选此项。从两个或多个选中 multiple 的选择器中提取的数据不会合并到一个单独记录中
3)delay - 选择器生效前的延迟时长
4)parent selectors - 为此选择器选择母选择器以产生选择器树形结构
注意:一个常见错误是同时创建两个选择器设定选项均选中 multiple,期望结果自然合并。例如,如果您同时选择分页链接和导航链接,这些链接无法自然合并。正确的方法是使用元素选择器选用 Element 元素,并将 Data 选择器作为子选择器添加到 Element 选择器中,而不是选中 multiple 选项。
4.1 Text 选择器
Text 选择器用于选择文本。Text 选择器会从选用元素及其子元素中提取文本,剥离 HTML(超文本标记语言),只抽出其中的文本。此选择器会忽略 及 标签中的文字。换行
标签会被替换为换行符。你还可以使用正则表达式来处理数据。
设定选项
1)selector - CSS 选择器,用于选择需提取数据
2)multiple - 选取多项记录。通常无需选中。如果你想在一个页面使用多种 Text 选择器,则你应当换用 Element 选择器。
3)regex - 正则表达式用于从结果中提取子字符串
Regex 正则表达式
正则表达式选项用于从选择器获取的结果中提取子字符串。使用正则表达式会返回完全匹配的结果。你可以在 www.regexr.com 上学习并演练正则表达式。
以下是一些平时可以用到的示例:
应用案例
1)每页提取 1 项纪录,使用多个文本选择器提取纪录不同字段
例如,你要抓取的站点每页有一篇文章。文章中包含标题、出版日期及作者信息。Link 选择器可将 Scraper 引至每个文章页面。建立多个文本选择器分别提取标题、出版日期及作者信息。 Text 选择器的Multiple 选项无需勾选因为每页只提取 1 项纪录。
2)使用多个 Text 选择器,每页提取多项记录
电商网站通常每页包含多项商品。如欲抓取这些项目需使用 Element 选择器将商品选中,对提取商品属性的 Text 选择器进行封装。
3)每页提取多项文本
比如你想要提取某篇文章的评论。每页有多项评论,你只想要其中的文本(如果你想要其他评论属性可参考上个示例)。你可以使用 Text 选择器提取这些评论。因为你想要提取多个数据,Text 选择器 multiple 选项需选中。
相关内容:
网友评论