xpath提取html属性,xpath提取 html标签的文字内容
前言:
做爬虫的过程中经常需要对html标签的文字内容进行提取,有几种情况 1.提取属性的值,2.提取标签的值,3.提取段落的所有文字
本文用的是 scrapy 的框架,用 response 做响应
1.提取属性的值
response.xpath("//a/@title").get(),可以直接得到 title 的值为:这是一个标题
注:get 方法是等同于extract()[0],getall 方法等同于extract()
官方文档1.5以后推荐使用 get 系列方法代替原来的 extract 系列方法
两种方法可以同时使用,看个人喜好
2.提取标签的值
这才是标题
response.xpath("//a/text()").get(),可以得到 a 标签的值:这才是标题
3.提取段落所有文字
左青龙
右白虎
老牛在当中
龙头在胸口
response.xpath("//div[@class='test']").get()
这种方式可以得到值为 test 的 div 标签下的所有标签组,即:
左青龙
右白虎
老牛在当中
龙头在胸口
浏览器展示是没问题的,但是我们需要纯文字用于匹配
为了去除标签,需要加一个 string 的方法,即:
response.xpath("string(//div[@class='test']")).get(),这样可以获取纯文字:
左青龙右白虎老牛在当中龙头在胸口
4.html 类型的字符串清除 html 标签
这是对3的补充,给个栗子 某次返回直接给一个html类型的字符串,记住是字符串,不是从response获取到的 返回json
{"title": 这是标题,
"content":"
左青龙
右白虎
老牛在当中
龙头在胸口
"}
这时候response.body是一个json结构体,直接用xpath不行的,所以需要做一个转换
import json
from scrapy import Selector
json_content = json.loads(response.body)["content"]
content = Selector(text=json_content)
content_text = content.xpath("string(.)").get()
因为只有 Selector 才有xpath方法,所以需要把 html 类型的字符串做一次转换才能用 string 方法
xpath提取html属性,xpath提取 html标签的文字内容相关推荐
- td标签内文字内容颜色改变
td标签 使用style样式改变文字内容颜色解决方法: <td style="color: red"> 我是td </td> 这种方式是没有效果的. 正确方 ...
- java jbutton文字_JAVA swing JLabel JButton标签文本文字内容的换行
package hj.exam.fram; import javax.swing.*; public class test extends JFrame { private JButton butto ...
- vue template html属性,详解template标签用法(含vue中的用法总结)
一.html5中的template标签 html中的template标签中的内容在页面中不会显示.但是在后台查看页面DOM结构存在template标签.这是因为template标签天生不可见,它设置了 ...
- xpath 取标签下所有文字内容_xpath提取目录下所有标签内的内容,递归 //text()...
利用xpath来提取所有标签里面的内容,即使标签头不同 #-*-coding:utf8-*- import re import os from lxml import etree html = ''' ...
- 请问一下用xpath提取信息时,遇到网页文本中有br标签,提取不到br标签后的内容怎么处理呢
# Xpath提取 node_list = response.xpath("//div[@class='article block untagged mb15 typs_hot']" ...
- java爬虫工具xpath提取_爬虫 xpath (数据提取)
xpath 是数据提取的一种常用的方法 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. 在 XPath 中,有七种类型的节点:元素.属性 ...
- 在Scrapy中如何利用Xpath选择器从HTML中提取目标信息(两种方式)
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 坚定,严谨,勤奋,开拓 前一阵子我 ...
- xpath java html_Java根据XPath提取HTML
有这样一段HTML: 希望通过这个XPath提取出Hello: //div//td[contains(@id, 'foo')]/text() 先导入maven依赖: net.sourceforge.h ...
- selenium提取数据之driver对象定位标签元素获取标签对象的方法
selenium提取数据之driver对象定位标签元素获取标签对象的方法 在selenium中可以通过多种方式来定位标签,返回标签元素对象 find_element_by_id (返回一个元素) fi ...
最新文章
- 全球 Top 1000 计算机科学家 h 指数公布,中国顶尖计算机科学家人数进入前三
- Python3基础教程:可变参数和关键字参数
- 并发不是并行,它更好!
- 【BZOJ2301】problem b,数论之莫比乌斯反演
- MTK 驱动开发(17)---LCD MIPI
- 【白皮书分享】2021-2022内容营销平台价值洞察白皮书.pdf(附下载链接)
- 485通讯协议_终于有人把RS485通讯协议应用及缺点分析清楚了,看完收获多多
- 如何运行element ui
- 计算机为什么启动不起来的,电脑启动不起来怎么办?
- Android 消息通知栏用法详解(一)
- NoSQL Scylla Open Source 3.0食量比Cassandra大
- 创建型设计模式(待更新)
- 腾讯云直播相关问题处理
- OA项目之项目简介会议发布
- 简约黄历日历网站源码分享
- ddz指标最佳数值_大单分差指标ddz如何解析资金流向与筹码分布
- SpringBoot JPA(JpaRepository)动态查询 分页展示
- 用java编写围棋游戏
- 赛先生的新旅行:昇腾AI带来的科学智能变革
- java简易日历程序报告_Java实现简单日历小程序 Java图形界面小日历开发
热门文章
- Java 文件上传下载管理器(控制台)
- U盘为什么还有剩余空间,但却提示说空间不够
- 图文教程:使用MyEclipse的hibernate工具从数据库反向生成实体Bean
- Spring3.0 AOP 详解
- 虚拟化系列-VMware vSphere 5.1 高可用性
- SQL游标原理和使用方法
- html a name属性
- Android多线程----异步消息处理机制之Handler
- jsp里面不能使用${pageContext.request.contextPath}解决方案
- 数据结构:基数排序(Radix sort)