pyquery是2.0.0版本,求解惑,为什么我这个pyquery选择器会把标签a之后的内容也选择出来,after方法也无法使用
该回答引用ChatGPT
PyQuery的版本2.0.0是比较老的版本,可能存在一些bug或者不兼容性的问题。在PyQuery 2.0.0中,似乎确实存在after方法无法使用的问题。另外,如果您的选择器会将标签a之后的内容也选择出来,可能是因为您的选择器没有正确指定要选择的元素。
您可以尝试更新PyQuery版本,或者使用其他方法来解决问题。例如,您可以使用CSS选择器来指定要选择的元素,如下所示:
from pyquery import PyQuery as pq
html = """
Paragraph
doc = pq(html)
a = doc(".content a") # 选择class为content下的a标签
print(a.text()) # 输出Link
在这个例子中,我们使用了CSS选择器.content a来选择class为content的div中的a标签。这样可以确保只选择我们需要的元素。
另外,您也可以使用PyQuery的siblings方法来选择兄弟元素,如下所示:
from pyquery import PyQuery as pq
html = """
Paragraph
doc = pq(html)
a = doc(".content a") # 选择class为content下的a标签
p = a.siblings("p") # 选择a标签的兄弟元素p标签
print(p.text()) # 输出Paragraph
在这个例子中,我们首先选择了class为content的div中的a标签,然后使用siblings方法选择了a标签的兄弟元素p标签。这样也可以确保只选择我们需要的元素。