python xpath 如何过滤div中的script和style标签

开源肥牛饭 发布于 2017/06/30 15:32
阅读 3K+
收藏 0

爬取一个页面中的div,想获取div中的文字,我是这么写的:

selector.xpath('//div[@class="text-con"]').xpath('string(.)').extract()[0].lstrip().rstrip()

但在这个 div中包含一个 style标签和两个script标签,这样把样式和script中的代码也获取了,怎么过滤script标签和style标签,然后只获取文字内容,网上看了看说用not 但是我始终没成功,不知道是不是用法不对

加载中
0
hit_kun
hit_kun
chrome可以直接生成xpath查询条件,可以试试
0
奔跑的小蘑菇
奔跑的小蘑菇

selector.xpath('//div[@class="text-con"]/text()').xpath('string(.)').extract()[0].lstrip().rstrip()

0
Feng_Yu
Feng_Yu

楼上+1,用xpath的/text()属性即可获取标签内的文本信息。推荐一个特别好的xpath教程,当年我就是跟着这个教程学的: http://zvon.org/xxl/XPathTutorial/General_chi/examples.html

0
z
zhbzhbzhbz

如果单纯要删除<script>和<style>:

1)可以参考这篇文章,用strip_elements函数删除元素:
https://www.cnblogs.com/XD00/p/10626312.html

2)或者可以参考这篇的"方法二",用lxml的Cleaner来过滤:
https://www.jianshu.com/p/26e443a9edb6

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部