快捷导航

用XPath定位到动作施加点

2016-1-3 16:17| 发布者: Fuller| 查看: 7421| 评论: 3

摘要: 1,什么是动作施加点定位用XPath表达式每创建一个动作步骤,就必须输入一个XPath定位表达式,如上图,这个定位表达式可以在网页上确定动作的施加点。我们在《连续动作的概念》一文反复强调:连续和多层。举个例子, ...

1. 什么是定位表达式

每创建一个动作步骤,就必须输入一个XPath定位表达式,用于定位施加动作的网页节点,这里的XPath支持绝对定位和相对定位,建议用MS的XPath搜索功能检验是否定位到动作施加点。如下图:

我们在《连续动作的概念》一文中反复强调:连续多层。举个例子,我们要自动选择日历上的日期,那么需要多个动作步骤,如下图,分为4层步骤,每层并不是只做一次动作,比如,选择月份,要循环做12次动作,这就是连续的含义。

  1. 动作步骤1:点击日期输入框,把日历弹出来
  2. 动作步骤2:选择年份
  3. 动作步骤3:选择月份
  4. 动作步骤4:选择日子

最重要的是,我们编写XPath的时候,要确保定位到动作施加点,下面是各种类型动作的说明

  • 连续点击:例如,连续点击一个UL下的所有LI,那么XPath表达式可能是这样的://ul[@class='xxxx']/li,这个表达式代表所有LI标签
  • 连续悬浮:同连续点击
  • 连续输入:XPath应该准确定位到输入框,并且是唯一确定一个HTML节点,因为多次动作是由输入条件决定的
  • 提交:XPath也应该准确定位到唯一一个提交按钮
  • 连续选择:SELECT标签下有很多OPTION供选择,XPath只定位到SELECT,不能定位到OPTION,爬虫程序会自动选择OPTION

编写XPath的时候,有一点要特别注意:避免连续点击的时候跳过一些节点。具体参看这个讨论贴《我想把页面上所有“更多”点击一遍,怎么做?

2. 相关资料

2.1 连续动作概念、场景和使用方法

2.2 返回目录->


鲜花

握手
1

雷人

路过
1

鸡蛋

刚表态过的朋友 (2 人)

相关阅读

发表评论

最新评论

评论 Fuller 2016-11-4 17:17
dreanl: 还是程序员思维吧,我怎么都看不懂。能不能出视频教程?
连续动作本来就是最难的,如果是为了入门,可以先看这个:http://www.gooseeker.com/doc/article-340-1.html
评论 scraper 2016-11-4 17:01
dreanl: 还是程序员思维吧,我怎么都看不懂。能不能出视频教程?
文档教程可以看http://www.gooseeker.com/tuto/tutorial.html的高级教程-自定义Xpath系列
视频教程有一些培训视频可以看http://www.gooseeker.com/doc/thread-2491-1-1.html
评论 dreanl 2016-11-4 16:49
还是程序员思维吧,我怎么都看不懂。能不能出视频教程?

查看全部评论(3)

GMT+8, 2020-11-26 13:07