微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python中的Xpath构建器

我在Python中构建相对复杂的xpath表达式,以便将它们传递给selenium.但是,它很容易出错,所以我正在寻找一个允许我构建表达式而不会弄乱字符串的库.例如,而不是写作

locator='//ul[@class="comment-contents"][contains(., "West")]/li[contains(., "reply")]

我可以这样写:

import xpathbuilder as xpb
locator = xpb.root("ul")
             .filter(attr="class",value="comment-contents")
             .filter(xpb.contains(".", "West")
             .subclause("li")
             .filter(xpb.contains (".", "reply"))

这可能不是可读的,但不容易出错.有这样的事吗?

解决方法:

虽然这不是你想要的……你可以使用css选择器

...
import lxml.cssselect
csssel = 'div[class="main"]'
selobj = lxml.cssselect.CSSSelector(csssel)
elements = selobj(documenttree)

生成的XPath表达式在selobj.path中

>>> selobj.path
u"descendant-or-self::div[@class = 'main']"

原文地址:https://codeday.me/bug/20190710/1423367.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐