我正在尝试使用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 @属性中删除html标记?
发布于 2014-06-08 21:48:58
但是返回的文本中仍然有html垃圾。
如果您的意思是字符串是HTML,请使用您已经理解的技术从HTML中提取文本:
descriptionHtml = pageopen.xpath('/html/body//div/div/div//div//span/@data-description')
descriptionBody = lxml.html.fromstring(descriptionHtml)
descriptionText = descriptionBody.xpath('text()')
https://stackoverflow.com/questions/24114225
复制