Python之关于Selenium的疑难杂症

本文介绍了在网页元素抓取中遇到的常见问题及解决方案。包括:1) 当`print(text)`显示为空时,可能因元素不可见,可改用`get_attribute('textContent')`获取;2) 使用`find_elements_by_xpath`等方法可能导致获取过多节点,应精准定位子节点;3) 展示了多种在当前节点查找子节点的方法,如`find_element_by_id`、`find_element_by_xpath`等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、print(*.text)时打印空白

WebElement中有可见元素与不可见元素之分,打印标签内文本却打印出空白的原因是因为打印的内容不可见的原因,这种情况可以利用get_attribute('textContent')解决

print(result.text)
在这里插入图片描述
print(result.get_attribute('textContent'))
在这里插入图片描述
2、抓取同一父标签下的兄弟节点时总抓到整个文档的同祖先的兄弟节点

定位父亲节点后再获取其子节点时不要使用find_elements_by_xpath()方法,这种方法在Selenium的底层库函数里最终都是用整个WebElement来操作的,用其他获取子节点的方法

3、关于如何获取子节点

find_element_by_id                     在当前节点查找指定id的子节点
find_elements_by_id                     在当前节点查找指定id的子节点集
find_element_by_name                    在当前节点查找指定name的子节点
find_elements_by_name                  	在当前节点查找指定name的子节点集
find_element_by_link_text               在当前节点查找指定链接文本的子节点
find_elements_by_link_text              在当前节点查找指定链接文本的子节点集
find_element_by_partial_link_text      	在当前节点查找指定链接部分文本的子节点
find_elements_by_partial_link_text    	在当前节点查找指定链接部分文的子节点集
find_element_by_tag_name               	在当前节点查找指定html tag的子节点
find_elements_by_tag_name            	在当前节点查找指定html tag的子节点集
find_element_by_xpath                   在当前节点查找指定xpath的子节点
find_elements_by_xpath                  在当前节点查找指定xpath的子节点集
find_element_by_class_name           	在当前节点查找指定class name的子节点
find_elements_by_class_name          	在当前节点查找指定class name的子节点集
find_element_by_css_selector            在当前节点查找指定css选择器的子节点
find_elements_by_css_selector          	在当前节点查找指定css选择器的子节点集	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值