scrapy使用用Xpath提取深层标签
在使用scrapy框架做爬虫时,有两种方式对标签内容进行提取:css和Xpath。基本的标签内容,属性提取都很容易。但对于多层嵌套的标签,如何提取到最里层的内容呢?
举个栗子:
网页HTML内容是
"<p id='test'>hello<b>world!</b></p>"
如何一下子提取到hello world!呢?
用css的话需要写两次选择:
response.css('#test::text').extract_first()
response.css('#test b::text').extract_first()
这个简单的例子还似乎可以这样做,但是实际项目中可没这么简单,往往是整篇文章都是嵌套的段落,文字,外面是p便签,里面是多层span标签,而且个数还不一致,根本无法一个个写。。。
因此,需要一种一次性提取最里层内容的方法!
用Xpath可以做到
response.xpath("string(//p[@id='test'])").extract()
# 或者
response.xpath("//p[@id='test']").xpath('string(.)').extract()# 输出:['helloworld!']
至于xpath的用法,可以参考这篇文章的总结:
https://www.cnblogs.com/MUMO/p/5732836.html
参考文章:
http://www.cnblogs.com/qlshine/p/5926101.html
https://www.cnblogs.com/MUMO/p/5732836.html
scrapy使用用Xpath提取深层标签相关推荐
- xpath提取html属性,xpath提取 html标签的文字内容
前言: 做爬虫的过程中经常需要对html标签的文字内容进行提取,有几种情况 1.提取属性的值,2.提取标签的值,3.提取段落的所有文字 本文用的是 scrapy 的框架,用 response 做响应 ...
- python xpath提取td标签_Python Xpath 提取html整个元素(标签与内容)
提取html某标签中文字时,文字中含有:"2O5",导致提取的文字不符合预期. 解决方法: #coding=utf-8 from lxml import etree from HT ...
- scrapy xpath获得a标签内的br em标签文字内容
scrapy xpath获得a标签内的br em标签文字内容 需要爬取的标签 实例 需要爬取的标签 <a title="[完整版]大哥别杀我" href="//ww ...
- 请问一下用xpath提取信息时,遇到网页文本中有br标签,提取不到br标签后的内容怎么处理呢
# Xpath提取 node_list = response.xpath("//div[@class='article block untagged mb15 typs_hot']" ...
- xpath contains_Python 爬虫进阶: Scrapy Shell 和 Xpath 学习心得
说来好笑,刚学习爬虫的时候为了调试代码,是将网页下载到本地,再用beautifulsoup载入本地网页文件进行分析,以保证选择器编写正确. Scrapy内置的调试器Scrapy Shell正好作此用途 ...
- 大数据标签获取处理步骤_基于大数据的用户深层标签挖掘方法与流程
本发明涉及大数据应用技术领域,尤其涉及一种基于大数据的用户深层标签挖掘方法. 背景技术: 用户画像建立的过程就是添加相应的标签,在数据挖掘领域称为标签化.标签是通过对用户信息分析而得到的高度精炼的特征 ...
- Scrapy爬虫:XPath语法
Scrapy爬虫:XPath语法 路径表达式 路径案例 谓语(Predicates) 谓语实例 选取未知节点 实例 选取若干路径 实例 Xpath轴 功能函数 注意事项: 提取内容 XPath 使用路 ...
- DOM+XPath提取规则注记!
下面是使用DOM+Xpath提取html中页面时经常使用的Xpath规则的一些示例: XPath相关的规则 没有属性 //B[not(@*)] 没有类属性 //B[not(@class)] 要求链接有 ...
- xpath 取标签下所有文字内容_对Xpath 获取子标签下所有文本的方法详解
对Xpath 获取子标签下所有文本的方法详解 在爬虫中遇见这种怎么办 想提取名称, 但是 名称不在一个标签里 使用xpath string()方法 例如 data.xpath("string ...
最新文章
- mysql server 5.6使用_关于MySQLServer5.6配置问题
- spring实例教程
- xcode6是否导入framework
- SQL删除数据表中指定列重复的数据
- .NET深入学习笔记(2):C#中判断空字符串的4种方法性能比较与分析
- Rails5 任务注释
- 图解 Git,一目了然!
- Ruby静态分析工具检视:metric_fu, Simian, Saikuro以及其他
- 软件质量控制、质量保证和质量管理区别
- 搬: 含有对象成员指针的类的对象成员指针初始化问题
- 湖北大学98届计算机网络,我校学子在“H3C”杯全国大学生网络技术大赛中获一等奖...
- 帅爆! 赛博朋克特效实现
- 联想小新安装windows 7
- FCW前车碰撞预警的两个重要指标——THW、TTC
- Springboot 系列(十三)使用邮件服务
- Android 移动开发 近场通信 蓝牙通信
- 阿里巴巴「防疫精灵」的敏捷开发实战
- esxi6.7解锁并安装macOS
- 合并RxJava的Observable数据流
- 波特率自适应的RS-485中继器设计