扫码关注官方订阅号
感觉 pyquery 对大写支持不好.
In [3]: dom = pq("<TEST>1</TEST>") In [4]: dom("TEST").text() ''
这是故意的,还是没做好.
ringa_lee
这是因为 lxml 行为不一致导致的。
pyquery 默认使用 lxml.etree 进行解析,它是区分大小写的。 但是按照 HTML 的标准来说,tag 是不区分大小写的。所以 pyquery 将 css selector 转换成 xpath 时,是使用的小写: dom._css_to_xpath("TEST")
dom._css_to_xpath("TEST")
你可以使用 dom = pq("<TEST>1</TEST>", parser='html') 强制使用 lxml.html 建树,即可。
dom = pq("<TEST>1</TEST>", parser='html')
的确,这算是Bug吧……
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
这是因为 lxml 行为不一致导致的。
pyquery 默认使用 lxml.etree 进行解析,它是区分大小写的。
但是按照 HTML 的标准来说,tag 是不区分大小写的。所以 pyquery 将 css selector 转换成 xpath 时,是使用的小写:
dom._css_to_xpath("TEST")你可以使用
dom = pq("<TEST>1</TEST>", parser='html')强制使用 lxml.html 建树,即可。的确,这算是Bug吧……