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

 我来答
创业者李孟
高粉答主

2017-05-21 · 数码领域创作者
个人认证用户
创业者李孟
采纳数:7947 获赞数:39410

向TA提问 私信TA
展开全部
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打数机就会自动再增加一个+号,所以,解析结果的时候要注意转义处理。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式