前言:

做爬虫的过程中经常需要对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标签的文字内容相关推荐

  1. td标签内文字内容颜色改变

    td标签 使用style样式改变文字内容颜色解决方法: <td style="color: red"> 我是td </td> 这种方式是没有效果的. 正确方 ...

  2. java jbutton文字_JAVA swing JLabel JButton标签文本文字内容的换行

    package hj.exam.fram; import javax.swing.*; public class test extends JFrame { private JButton butto ...

  3. vue template html属性,详解template标签用法(含vue中的用法总结)

    一.html5中的template标签 html中的template标签中的内容在页面中不会显示.但是在后台查看页面DOM结构存在template标签.这是因为template标签天生不可见,它设置了 ...

  4. xpath 取标签下所有文字内容_xpath提取目录下所有标签内的内容,递归 //text()...

    利用xpath来提取所有标签里面的内容,即使标签头不同 #-*-coding:utf8-*- import re import os from lxml import etree html = ''' ...

  5. 请问一下用xpath提取信息时,遇到网页文本中有br标签,提取不到br标签后的内容怎么处理呢

    # Xpath提取 node_list = response.xpath("//div[@class='article block untagged mb15 typs_hot']" ...

  6. java爬虫工具xpath提取_爬虫 xpath (数据提取)

    xpath 是数据提取的一种常用的方法 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. 在 XPath 中,有七种类型的节点:元素.属性 ...

  7. 在Scrapy中如何利用Xpath选择器从HTML中提取目标信息(两种方式)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 坚定,严谨,勤奋,开拓 前一阵子我 ...

  8. xpath java html_Java根据XPath提取HTML

    有这样一段HTML: 希望通过这个XPath提取出Hello: //div//td[contains(@id, 'foo')]/text() 先导入maven依赖: net.sourceforge.h ...

  9. selenium提取数据之driver对象定位标签元素获取标签对象的方法

    selenium提取数据之driver对象定位标签元素获取标签对象的方法 在selenium中可以通过多种方式来定位标签,返回标签元素对象 find_element_by_id (返回一个元素) fi ...

最新文章

  1. 全球 Top 1000 计算机科学家 h 指数公布,中国顶尖计算机科学家人数进入前三
  2. Python3基础教程:可变参数和关键字参数
  3. 并发不是并行,它更好!
  4. 【BZOJ2301】problem b,数论之莫比乌斯反演
  5. MTK 驱动开发(17)---LCD MIPI
  6. 【白皮书分享】2021-2022内容营销平台价值洞察白皮书.pdf(附下载链接)
  7. 485通讯协议_终于有人把RS485通讯协议应用及缺点分析清楚了,看完收获多多
  8. 如何运行element ui
  9. 计算机为什么启动不起来的,电脑启动不起来怎么办?
  10. Android 消息通知栏用法详解(一)
  11. NoSQL Scylla Open Source 3.0食量比Cassandra大
  12. 创建型设计模式(待更新)
  13. 腾讯云直播相关问题处理
  14. OA项目之项目简介会议发布
  15. 简约黄历日历网站源码分享
  16. ddz指标最佳数值_大单分差指标ddz如何解析资金流向与筹码分布
  17. SpringBoot JPA(JpaRepository)动态查询 分页展示
  18. 用java编写围棋游戏
  19. 赛先生的新旅行:昇腾AI带来的科学智能变革
  20. java简易日历程序报告_Java实现简单日历小程序 Java图形界面小日历开发

热门文章

  1. Java 文件上传下载管理器(控制台)
  2. U盘为什么还有剩余空间,但却提示说空间不够
  3. 图文教程:使用MyEclipse的hibernate工具从数据库反向生成实体Bean
  4. Spring3.0 AOP 详解
  5. 虚拟化系列-VMware vSphere 5.1 高可用性
  6. SQL游标原理和使用方法
  7. html a name属性
  8. Android多线程----异步消息处理机制之Handler
  9. jsp里面不能使用${pageContext.request.contextPath}解决方案
  10. 数据结构:基数排序(Radix sort)