如图,需要得到出处文本内容,如果只是"./p[4]/text()"匹配,则会漏掉/a下面的“起坐”和“桃笙”:
改为列表推导式和string(.)的方式返回/p下面的所有子节点文本:
chuchu = result.xpath("./p[4]")
for a in chuchu:
origin = [i.xpath('string(.)') for i in a.xpath('.')]
print('origin:',origin[0][3:]) # 再通过[3:]切割去掉“出处 ”
输出:
origin: 清 孙道乾《小螺庵病榻忆语》:“小暑日,王叔眉学博自武林归,以娱园主人画团扇相赠……儿起坐桃笙上,爱不释手。”