selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: The result of the xp

本文探讨使用Selenium的find_element方法直接定位并提取被其他标签分割的文本时遇到的问题及解决思路,包括利用XPath和正则表达式等方法。

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

注意,这是关于python3的新手探讨,写这个之前我已经找了十几分钟百度了,实在是搞不懂那些大佬是怎么想的,老是喜欢讲一下定位方法,我只想说这在开发者工具里面学是最好的,我这里是用xpath直接定位文本产生的错误,如果你也出现错误了,那估计八九不离十也是这个错误了,这是语法错误,因为selenium所有的定位方法都是基于find_element,看名字,那就是找web元素的,而text是一个目标文本[object Text]

不能直接用find_element寻找,如果懂scrapy的会知道scrapy的xpath方法是可以直接找到目标文本的,换句话说就是形如我这种//*[@id="main"]/div/div[2]/ul/li[1]/div/div[1]/p/text()的xpath不能直接用于find_element

也用了by_ink_text(), 其余的也没意思去试了,就是定位不到元素---“元素”, Message: no such element:但是到开发者工具可以找到,也不是什么隐藏不隐藏,//*[@id="main"]/div/div[2]/ul/li[1]/div/div[1]/p直接找到p节点直接.text输出可以得到文本,主要就是在一个标签被其强行用了两个子标签隔开了

<p>深圳  <em class="vline"></em>1-3年<em class="vline"></em>本科</p>

对于这种文本的分别提取,1可以直接用正则表达式

2可以通过.text()获取所有的文本,然后在对获取到的文本进行分割

如果看到了我的文章,你基本上放弃吧,我知道你也估计也是将selenium定位到的标签内的文本--被其他标签分割的,给分别提取出来,我现在告诉你,只用selenium你是可以直接放弃这种想法



评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值