xpath解析问题
**要解析的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代码如下:
```python
from lxml import etree
path = './1.html'
tree = etree.parse(path)
a = tree.xpath('//td/text()')
# a = tree.xpath('//tr/td/text()')
print(a)
```
为什么这两种写法的返回值都为空列表呢?按理说应该取到值了呀! 试试看(‘//td/text()’)? from lxml import etree
path = '.\\1.html'
tree = etree.parse(path, etree.HTMLParser())
print(tree)
a = tree.xpath('//tr/td/text()')
print(a)
b = tree.xpath('//tr/td/text()')
print(b) 本帖最后由 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) 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 xpath 索引是从 1 开始的,不是 0 xpath解析从1开始不是0 可以试试这个办法 :
weikun444 发表于 2021-1-20 07:17
可以试试这个办法 :
和我一样懒 xpath不存在0的说法 第一个下标就是1
页:
[1]
2