列表页采集
上一部分展示了如何采集详情页,在其中每个字段对应一个字段。 本章节将讨论如何采集一页中重复的元素。
这儿我们以亚马逊的网页为例: https://www.amazon.com/Smart-Watch-Accessories/b/ref=dp_bc_aui_C_3?ie=UTF8&node=7939902011
第一步: 打开网页并确定待采集的内容
这儿有多个商品,每个商品有类似的结构。同时在页面的底部有一个明显的翻页按钮。 我们希望能采集前面5页的商品信息。
第二步: 启动DNS,点击‘高级采集’, 而后选择第二个模板:"点击翻页按钮采集多页".
NDS的模板生成的规则默认带有两个节点:
- 开始 : 关联节点,带有打开网页的动作.
- 列表1: 列表节点,带有空的块和一个空字段.
更多关于节点的说明,请参见 什么是节点?
第三步: 针对列表节点, 我们必须定义好块, 以及至少一个字段.
所有的字段必须在选定的块以内, 所以选的块的时候, 可以将该商品的所有信息都选择其中。
元素选择器的使用, 请参见 选择器详解
这儿选择器显示当前页上有33个块
第四步: 使用元素选择器为块内每个一字段选择对应的元素
为字段选择元素时,打开选择器对话框时,当前页内的所有块会被高亮显示。只有高亮区域内的元素才是可以选择。
将鼠标移到字段对应的元素上,点击或者按下Shift后,选择器会自动选定每个块内所有类似的字段元素。
针对每个字段, 你可以
- 针对字段,进行某些特殊动作,这些动作会在采集之前执行 (通过点击 )
- 定义期待抽取的字段元素的属性. 除了内置的属性,您也可以直接输入该元素上的特定属性名
- 如果目标元素是图片,则可以声明下载图片
- 按需转换数据格式 (通过点击 )
- 如果不想采集具体元素,而只想输出固定值,可以输入一个默认值.
- 可以声明将该字段的值输出到最终的数据表
页面上的块元素和字段元素正确定义后, 您可以点击预览按钮 ( ) 来预览从当前页采集的结果。
第五步: 点击编辑器底部的‘下一步’导航到‘翻页’标签页
这儿我们定义如何通过翻页来装载采集更多列表
为了翻页的设置在后续所有的页面能正常工作,这儿我们需要确定:
- 我们需要翻页吗?
- 应该选择哪个翻页模式
- 翻页的按钮是否定位正确.
- 该翻页是否在后续的页面都能正常工作?即从第一页到第二页, 第二个到第三页等等
- 到达最后一页的时候,是否能正常的结束?
如果没有更多的列表需要采集, 我们可以选定‘不需要’翻页即可。而后直接通过‘下一步’继续。
NDS提供了5中内置的翻页模式支持。这些翻页模式都不需要用户写任何代码。 为了选择最合适的,可以参考下面的向导:
翻页是通过鼠标点击完成的吗?
- 可以点击固定的按钮翻页吗?
- 翻页后的列表完全替换老的列表吗? 如果是, 则选择‘点击固定的翻页按钮’
- 新的列表是附加在现有的列表后面吗? 如果是, 则选择‘点击更多按钮同业增量装载’
- 可以通过当前页码定位到下一页码吗? 如果是, 则选择‘根据当前页确定下一页点击’
- 页面上显示了所有的页码了吗? 如果是, 选择‘固定页码逐个点击’
- 可以点击固定的按钮翻页吗?
是通过下滚鼠标装载更多的列表吗?
- 是滚动整个页面吗? 如果是, 则选择‘下滚实现同页增量装载’,同时滚动目标元素为空
- 是必须在特定的框里面滚动吗? 如果是, 则选择‘下滚实现同页增量装载’,同时滚动目标元素为该特定框
一旦选定了正确的翻页模式,我们需要正确的选定翻页的元素。NDS的选择器会智能的协助您选择对应的元素 更多细节请参见 翻页详解 元素选择器详解
一旦选定的了翻页模式和翻页元素, 可以简单的通过按钮()设定翻页的数量。
到目前为止,我们声明了列表页上的块和字段,以及如何翻页的方式和次数。 保存规则。 执行时, NDS会自动采集每一页列表并翻页到下一页列表。