我是靠谱客的博主 会撒娇吐司,最近开发中收集的这篇文章主要介绍selenium爬去数据,能找到父元素,find_elements_by_xpath不能找到下面的子元素,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.先来看一份数据

在这里插入图片描述

2.获取要查找元素的父标签

首先查找我要获取图片的父标签:listcontent = driver.find_element_by_id('list-content'),没错获取到了

3.层级定位获取子标签

层级递归获取子标签:datalists =listcontent.find_elements_by_xpath('./div[@class="zu-itemmod"]')

将datalists循环输出,卧槽,怎么为空,什么原因?难道这个div是动态加载的吗?让后我在获取子元素前让线程沉睡3秒,在此期间我手动推动滚动条上下移动,还真是获取了少量的子元素,但是明显的只有几条,不够啊!

脑中灵光一闪,那我让线程多沉睡会,发现还是不能查找到子元素,而且,如果爬去的页面比较多,很影响效率啊,

怎么办,很难受,难道天要亡我

首先我使用抓包工具确认数据不是动态加载的,所以没必要执行js上下拖动

绝望之中,使用了方法:datalists = listcontent.find_elements_by_class_name('zu-itemmod')

发现所有元素都能找到了,到底是怎么个回事?

这就不得不提selenium使用xpath的定位方式了(感兴趣可以自己搜索),总之一句话:

优先使用id,class,name等定位方式,其次是css,是在不行了在使用xpath,因为xpath在整个文档中寻找,是很慢的,你的xpath还没找到元素,可是循环已经遍历输出了,导致没有查找到元素

最后

以上就是会撒娇吐司为你收集整理的selenium爬去数据,能找到父元素,find_elements_by_xpath不能找到下面的子元素的全部内容,希望文章能够帮你解决selenium爬去数据,能找到父元素,find_elements_by_xpath不能找到下面的子元素所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部