as614001 发表于 2023-1-10 10:47

python lxml位置谓语为什么失效呢?

本帖最后由 as614001 于 2023-1-10 10:51 编辑

看起来位置语完全无效。
~~~
   -      第N个
    -   最后一个
;    -倒数第2个 、 - 倒数第3个
、、、
~~~
~~~
from lxml import etree

html = etree.HTML(page)
#数据解析
table = html.xpath('//table')
print(len(table))
print(table)
#输出
2
[<Element table at 0x1a2a9544388>, <Element table at 0x1a2a95443c8>]
~~~
~~~
from lxml import etree

html = etree.HTML(page)
#数据解析
table = html.xpath('//table')
print(len(table))
print(table)
#输出
2
[<Element table at 0x1a2a9544388>, <Element table at 0x1a2a95443c8>]
~~~
~~~
from lxml import etree

html = etree.HTML(page)
#数据解析
table = html.xpath('//table')
print(len(table))
print(table)
#输出
2
[<Element table at 0x1a2a9544388>, <Element table at 0x1a2a95443c8>]
~~~
~~~
from lxml import etree

html = etree.HTML(page)
#数据解析
table = html.xpath('//table')
print(len(table))
print(table)
#输出
0
[]
~~~

xu741852 发表于 2023-1-10 11:07

Page变量什么内容?

as614001 发表于 2023-1-10 17:23

本帖最后由 as614001 于 2023-1-10 17:25 编辑

xu741852 发表于 2023-1-10 11:07
Page变量什么内容?
page就是随便的你可以搞一个~~~
<div>
<table>
        <tbody><tr>1</tr></tbody>
</table>
<table>
<tbody>
<tr>2</tr>
</tbody>
</table>
</div>
~~~

xu741852 发表于 2023-1-11 10:20

xpath(r"\\table")

as614001 发表于 2023-1-11 18:32

xu741852 发表于 2023-1-11 10:20
xpath(r"\\table")

你好像不明白我要表达的意思。 我的意思是 xpath("//table") 按照文档 这个可以指定第几个table节点。但是目前是失效的

xu741852 发表于 2023-1-12 10:06

as614001 发表于 2023-1-11 18:32
你好像不明白我要表达的意思。 我的意思是 xpath("//table") 按照文档 这个可以指定第几个table节 ...

返回一个列表,用列表取不行吗?

MyModHeaven 发表于 2023-1-20 16:00

xpath中节点的下标从1开始,第一个应该是,没有

MyModHeaven 发表于 2023-1-20 16:05

首先,不可能是错的,用了这么多年了,这么基础的地方怎么会有错。我猜,可能是某个小地方你搞错了,是一个乌龙

可以把你用的那部分html发出来,大家一起看看,好比对找出错误。不然用不一样的html,他用着没问题,你用着有问题,这也无法解决问题
页: [1]
查看完整版本: python lxml位置谓语为什么失效呢?