概述
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不能找到下面的子元素所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复