使用xpath解析某个节点下所有文本(包括该节点的文本和其所有子节点的文本):
from lxml import etree
import requests
url = 'xxx'
resp = requests.get(url)
html = resp.text
root = etree.HTML(html)
# 获取某个tr节点下面的所有文本数据数据
tr_text_all = root.xpath('string(/html/body/table[2]/tbody/tr[1])')
这样获取的文本,如果文本中包含空格(' '),文本又是utf-8编码的话,本文会出现 '\xa0' 这种东西,需要手工去替代:
tr_text_all = tr_text_all.replace('\r', '').replace('\t', '').replace('\n\n', '\n').replace('\xa0', ' ')