我尝试使用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标记?
答案 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()')