我需要一些文本内部span标记,但span标记没有任何类或标题。 就像:
<span>kirnath@me.com</span>
<span>kirnath2@me.com</span>
<span>kirnath3@me.com</span>
我试过使用:
^{pr2}$但我出错了:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//*[contains(text(), kirnath@me.com)]' is not a valid XPath expression.
我需要得到:
kirnath@me.com
kirnath2@me.com
kirnath3@me.com
字符串内部和外部的内部引号都使用单引号。对里面的文字使用双引号。或者在引用之前使用反斜杠。在
试试这个:
或者
^{pr2}$这将只返回带有文本
kirnath@me.com
的元素。在查找您可以使用的任何电子邮件地址
这将找到包含
@
和.
文本的所有元素获取页面的所有span元素并不理想。即使
span
标记没有任何id或类,它的父节点可能有一些唯一的标识符。在你能为页面源提供一些级别的父节点吗?在
像这样:!?在
输出为:
^{pr2}$编辑:或类似这样,以获取更多匹配项
输出为:
如果您想要所有跨距,那么抓取webElements列表并使用list comprehension将.text从每个列表中提取到一个列表中。如果不需要所有跨距,请查找关系/位置参数,例如限制到所需的范围。或者甚至可能在.text上匹配子字符串,如果您有一个一致存在的子字符串可供使用。在
xpath子字符串
^{pr2}$您可以使用:contains pseudo class from bs4.7.1来处理driver.page_源. 然后可以为span标记指定要匹配的子字符串
相关问题 更多 >
编程相关推荐