快捷导航

怎样抓取下拉菜单被选择项的值

2016-1-3 17:47| 发布者: Fuller| 查看: 8905| 评论: 6

摘要: 1,为什么不能用XPath抓取SELECT的被选项 XPath相比于正则表达式,在抓取网页内容时更加易用,GooSeeker网络爬虫整个都采用XPath表达式抓取内容。但是有些HTML动作控件的内容用XPath抓取不到的,SELECT下面的选中 ...

1. 为什么不能用XPath抓取SELECT的被选项

相比于正则表达式,XPath在抓取网页内容上更加易用,GooSeeker网络爬虫整个都采用XPath表达式来提取信息。但是有些HTML动作控件的内容用XPath抓取不到,例如,下拉菜单SELECT选中的OPTION是哪个?这个信息抓取不到,假设你编写了一个XPath://select[@class='selectMonth']/option[@selected='true'] ,这个XPath是无效的。如果目标网页上的下拉菜单确实设置了一个缺省选中的OPTION,那只是缺省情况,不代表动态情况。

原因很简单:XPath可以抓取html属性值(attribute),但是不能抓取特性值(property)

2. GooSeeker在抓取结果文件中保存选中项值

要抓取选中项的值,必须为这个下拉菜单定义一个连续动作,那么DS打数机就能记录下来当前动作做到哪一个OPTION了。下图是一个文件样例。

在文件前部增加了两个标签,用于记录动作循环次数actionno和动作施加点的值actionvalue,数值之间用-+-来间隔开。

  • actionno:表示每层动作执行到第几次循环了;
  • actionvalue:表示特定动作类型执行后的结果,比如,选中的OPTION的值,有些动作是不记录结果的,比如,自动滚屏;

上图可以看出,定义了6层动作,第2和第3层动作分别选择年份和月份,而且已经选择到1960年4月。解析这两个字段的时候,识别-+-符号就能分割成相应层次动作的执行次数。如果动作类型是输入,当用户输入的字符串含有+号时,DS打数机就会自动再增加一个+号,所以,解析结果的时候要注意转义处理。

3. 相关资料

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

3.2 返回目录->

1

鲜花

握手
1

雷人

路过
2

鸡蛋

刚表态过的朋友 (4 人)

相关阅读

发表评论

最新评论

评论 Fuller 2018-11-17 09:21
qq763343617: 没看懂
这篇文章讲怎样把选择的菜单项的值存下来,因为选择菜单是动态的,用普通的抓取规则抓不到。这篇文章是有关连续动作高级设置的,如果只是为了学习基本操作,可以看这篇教程:https://www.gooseeker.com/doc/article-372-1.html
评论 qq763343617 2018-11-16 23:57
没看懂
评论 ym 2017-7-6 09:36
suhlwook: 能不能做下拉菜单视频教程啊,  比如<a href="http://shouji.tenaa.com.cn/" target="_blank">http://shouji.tenaa.com.cn/</a>    这样的网站。
官网已经提供了选择下拉菜单的案例教程,参考http://www.gooseeker.com/doc/article-372-1.html
评论 suhlwook 2017-7-5 20:52
能不能做下拉菜单视频教程啊,  比如http://shouji.tenaa.com.cn/    这样的网站。
评论 Fuller 2016-12-29 10:19
574412900: 恕我没看懂...
哪一块没有看明白?专门给你解释一下。另外,最新版教程即将发布,我们会考虑你的意见进行修改
评论 574412900 2016-12-27 16:40
恕我没看懂...

查看全部评论(6)

GMT+8, 2020-11-30 18:07