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 ...
最新文章
- vim 7.4同时支持python 2.x和3.x问题调研
- ​CSRankings年度更新,清华北大包揽AI领域前两名​ | AI日报
- 安卓9.0刷linux,Ubuntu系统下编译Android 9.0系统
- android 控件监听方法,Android界面控件(2)—注册点击事件监听器
- Spring自定义注解+redis实现接口限流
- java reader_Java Reader reset()方法与示例
- 清华计算机系上热搜!近9成优秀毕业生放弃留学,前50名41人留校深造
- 欢迎使用CSDN-markdown编辑器-入门
- 计算机软件服务板块,信息技术板块
- 编写一个算法来判断一个数 n 是不是快乐数
- Security+ 学习笔记32 云安全控制
- 流浪北京的日子(二)
- oracle srvctl命令,关闭RAC、srvctl命令
- Python之XML模块
- 运动控制卡,越来越简单了
- AltiumDesigner(三):PCB导出Gerber文件及各个Gerber文件说明
- Python Google关键词搜索 Google人机验证
- 根据自己的词汇量阅读英语原著
- WLAN驱动分析文档
- 看看阿里双十一970P数据处理得,那叫一个牛啤!
热门文章
- 移动支付交易规模增长率高达707%,安全面临考验!
- velocity mybatis spring 在maven的整合开发(二)
- haproxy,lvs keepalived || heartbeat,nginx对比
- Lync 2013部署(1)—AD准备
- Mindjet MindManagers思维导图使用记录
- 《认清C++语言》---谈谈const
- php curl p12证书处理,PHP如何支持CURL字符串证书传输(详细解决过程)
- scrollview 实现滑动到底部再滑动加载数据的功能
- Android 手把手教您自定义ViewGroup
- 高精度模板 c++/类封装