吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1184|回复: 12
收起左侧

[求助] xpath解析问题

[复制链接]
scggdani 发表于 2021-1-19 22:05
[/size]

要解析的xml:

<html>
    <body>
        <tr>
            <td>a</td>
            <td>b</td>
        </tr>
        <tr>
            <td>c</td>
            <td>d</td>
        </tr>
        <tr>
            <td>e</td>
            <td>f</td>
        </tr>
    </body>
</html>

要解析td标签里的值,使用的python代码如下:

from lxml import etree

path = './1.html'
tree = etree.parse(path)
a = tree.xpath('//td[0]/text()')
# a = tree.xpath('//tr[0]/td[0]/text()')
print(a)

为什么这两种写法的返回值都为空列表呢?按理说应该取到值了呀!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Georgeoink 发表于 2021-1-19 22:34
试试看(‘//td/text()’)?
Jack2002 发表于 2021-1-19 22:35
[Python] 纯文本查看 复制代码
from lxml import etree

path = '.\\1.html'
tree = etree.parse(path, etree.HTMLParser())
print(tree)

a = tree.xpath('//tr[1]/td[1]/text()')
print(a)

b = tree.xpath('//tr[1]/td[2]/text()')
print(b)
fanvalen 发表于 2021-1-19 22:51
本帖最后由 fanvalen 于 2021-1-19 22:57 编辑

所以我不喜欢这种解析,直接re
improt re
txt=open('./1.html',encoding='utf8').read
a=re.findall(r'<td>(.*)</td>',txt)
print(a[0])
yangbing965 发表于 2021-1-20 01:13
fanvalen 发表于 2021-1-19 22:51
所以我不喜欢这种解析,直接re
improt re
txt=open('./1.html',encoding='utf8').read

re正则,写起来麻烦点。也可能楼主没搞明白正则的编写规则。

对于楼主的要求,其实用Beautiful Soup4的CSS选择器来写更方便。

https://www.cnblogs.com/luckiness/p/13177875.html
加钱哥 发表于 2021-1-20 02:33
xpath 索引是从 1 开始的,不是 0
hxh-linux 发表于 2021-1-20 06:19
xpath解析  从1开始  不是0
a.jpg
weikun444 发表于 2021-1-20 07:17
可以试试这个办法 :

360截图20210120071716391.jpg
南归不NG 发表于 2021-1-20 07:45
weikun444 发表于 2021-1-20 07:17
可以试试这个办法 :

和我一样懒
Rezalt 发表于 2021-1-20 08:44
xpath不存在0的说法 第一个下标就是1
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 04:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表