前言:

做爬虫的过程中经常需要对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. vim 7.4同时支持python 2.x和3.x问题调研
  2. ​CSRankings年度更新,清华北大包揽AI领域前两名​ | AI日报
  3. 安卓9.0刷linux,Ubuntu系统下编译Android 9.0系统
  4. android 控件监听方法,Android界面控件(2)—注册点击事件监听器
  5. Spring自定义注解+redis实现接口限流
  6. java reader_Java Reader reset()方法与示例
  7. 清华计算机系上热搜!近9成优秀毕业生放弃留学,前50名41人留校深造
  8. 欢迎使用CSDN-markdown编辑器-入门
  9. 计算机软件服务板块,信息技术板块
  10. 编写一个算法来判断一个数 n 是不是快乐数
  11. Security+ 学习笔记32 云安全控制
  12. 流浪北京的日子(二)
  13. oracle srvctl命令,关闭RAC、srvctl命令
  14. Python之XML模块
  15. 运动控制卡,越来越简单了
  16. AltiumDesigner(三):PCB导出Gerber文件及各个Gerber文件说明
  17. Python Google关键词搜索 Google人机验证
  18. 根据自己的词汇量阅读英语原著
  19. WLAN驱动分析文档
  20. 看看阿里双十一970P数据处理得,那叫一个牛啤!

热门文章

  1. 移动支付交易规模增长率高达707%,安全面临考验!
  2. velocity mybatis spring 在maven的整合开发(二)
  3. haproxy,lvs keepalived || heartbeat,nginx对比
  4. Lync 2013部署(1)—AD准备
  5. Mindjet MindManagers思维导图使用记录
  6. 《认清C++语言》---谈谈const
  7. php curl p12证书处理,PHP如何支持CURL字符串证书传输(详细解决过程)
  8. scrollview 实现滑动到底部再滑动加载数据的功能
  9. Android 手把手教您自定义ViewGroup
  10. 高精度模板 c++/类封装