从xpath @attribute中删除html标记

时间:2014-06-09 05:35:01

标签: python xpath lxml

我尝试使用lxml和xpath从网页中提取一些文本 - 我需要两个位

主要正文:

page = requests.get(url)
pageopen = lxml.html.fromstring(page)

body_one = pageopen.xpath('/html/body//div/div/div//div/p[@class="body"]/text()')

工作正常

第二个文本正文(仅在鼠标点击后显示)我已设法使用

pageopen.xpath('/html/body//div/div/div//div//span/@data-description')

但是返回的文本仍然包含html垃圾。

在上面的语句中使用/ text()函数返回一个空列表。

我花了好几个小时阅读lxml文档,但它对我来说都是希腊语。

如何从xpath @attribute中删除html标记?

1 个答案:

答案 0 :(得分:1)

  

但是返回的文本仍然包含html垃圾

如果您的意思是该字符串是HTML,请使用您已经了解的技术从HTML中提取文本:

descriptionHtml = pageopen.xpath('/html/body//div/div/div//div//span/@data-description')
descriptionBody = lxml.html.fromstring(descriptionHtml)
descriptionText = descriptionBody.xpath('text()')