- 获取上一个兄弟节点
html = etree.HTML(content)
tr_list = html.xpath('//tr[@nowrap="nowrap"]')
for tr in tr_list:
# 获取上一个兄弟节点的两种方式,如下:
# 写法1:直接在当前tr节点上用XPath获取【紧邻的前一个兄弟tr节点】(推荐,更简洁)
prev_tr = tr.xpath('./preceding-sibling::tr[1]')[0] # [0]取第一个(即紧邻的)
# 写法2:lxml节点自带的getprevious()方法,获取紧邻的前一个兄弟节点(需判断节点类型是否为tr)
prev_tr = tr.getprevious()
if prev_tr is None or prev_tr.tag != 'tr': # 防止前一个节点不是tr/无兄弟节点
continue # 无符合条件的前一个tr,跳过
- 获取标签内的所有源码内容
防乱码版打印
prev_tr_html = etree.tostring( prev_tr, encoding='utf-8', pretty_print=True, xml_declaration=False # 关闭XML声明头,解决特殊字符/乱码问题[参数可选] ).decode('utf-8')