sed提取两个关键字之间的内容_python提取文本指定内容

sed提取两个关键字之间的内容_python提取文本指定内容示例:<table> <thead> <tr> <th>ID</th> <th>名称</th> <th>电话</th> <th>说明</th> <th>类型</th> <th&g…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

示例:

<table> 
	<thead> 
		<tr> 
			<th>ID</th> 
			<th>名称</th> 
			<th>电话</th> 
			<th>说明</th> 
			<th>类型</th> 
			<th>位置</th> 
		</tr> 
	</thead> 
	<tbody> 
		<tr> 
			<td>1</td> 
			<td>11</td> 
			<td>111111</td> 
			<td>1111111</td> 
			<td>11111111</td> 
			<td>111111111</td> 
		</tr> 
		<tr> 
			<td>2</td> 
			<td>22</td> 
			<td></td> 
			<td></td> 
			<td>22222222</td> 
			<td>222222222</td> 
		</tr> 
	</tbody> 
</table>

如果上述代码是列表页中要获取的部分代码,现在要获取 所有列表页 的tbody标签中每个tr标签下 除第三、四个td标签(这2个中可能有数据,也可能无数据) 外的其他4个td标签中的数据,该如何获取?

如果使用如下方式获取:

res = html.xpath('//tbody/tr/td/text()')
print(res)

则结果为:

['1', '11', '111111', '1111111', '11111111', '111111111', '2', '22', '22222222', '222222222', ...]

这样不方便清洗不需要的数据。

可以分三步来获取数据。
第一步:获取所有的td节点

res = html.xpath('//tbody/tr/td')
print(res)

结果为:

[<Element td at 0x93cd9c8>, <Element td at 0x93cdbc8>, <Element td at 0x93cdd48>, <Element td at 0x93cd708>, <Element td at 0x93cddc8>, <Element td at 0x93d74c8>, <Element td at 0x93d7d08>, <Element td at 0x93d7048>, <Element td at 0x93d7288>, <Element td at 0x93d7548>, <Element td at 0x93d7888>, <Element td at 0x93d7388>]

第二步:将大list分割成多个小list,每个小list包含6个td节点

res2 = [res[s : s + 6] for s in range(0, len(res), 6)]		#将大list分割成多个小list,每个小list包含6个td节点
print(res2)

结果为:

[[<Element td at 0x93cdb48>, <Element td at 0x93cd788>, <Element td at 0x93cd848>, <Element td at 0x93cdd08>, <Element td at 0x93cdf88>, <Element td at 0x93d7e48>], [<Element td at 0x93d7e08>, <Element td at 0x93d7388>, <Element td at 0x93d7888>, <Element td at 0x93d7548>, <Element td at 0x93d7808>, <Element td at 0x93d7288>]]

第三步:循环获取每个小list中的每个td节点的文本数据,并剔除不需要的数据

		for x in res2:
			res3 = []
			for y in x:
				res4 = y.xpath('text()')
				res3.append(str(res4).strip("[']"))
			res3 = res3[:2] + res3[4:]				#只保留除了第3、4个td标签外的其他4个td标签的数据
			print(res3)

结果为:

['1', '11', '11111111', '111111111']
['2', '22', '22222222', '222222222']

这样就获得了想要的结果。

如有更好的方法,请留言告诉我,谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196520.html原文链接:https://javaforall.net

(0)
上一篇 2025年9月25日 下午12:22
下一篇 2025年9月25日 下午1:01


相关推荐

  • jsonpath 判断是否包含_JSONPath介绍

    jsonpath 判断是否包含_JSONPath介绍/***@authoritguang*@create2017-12-1010:03**/@RunWith(SpringRunner.class)@SpringBootTest@Slf4jpublicclassJSONpathControllerTest{@Testpublicvoidtest(){Useruser=newUser(“itguang”,”123456″…

    2022年6月22日
    103
  • 防止redis崩溃_redis雪崩解决方案

    防止redis崩溃_redis雪崩解决方案缓存雪崩:缓存雪崩是指大量的应用请求无法在Redis缓存中进行处理,紧接着,应用将大量请求发送到数据库层,导致数据库层的压力激增。两个原因:原因一、缓存中有大量数据同时过期,导致大量请求无法得到处理。具体来说,当数据保存在缓存中,并且设置了过期时间时,如果在某一个时刻,大量数据同时过期,此时,应用再访问这些数据的话,就会发生缓存缺失。紧接着,应用就会把请求发送给数据库,从数据库中读取数据。如果应用的并发请求量很大,那么数据库的压力也就很大,这会进一步影响到数据库的其他正常…

    2025年11月17日
    4
  • poe交换机如何选择_怎么选择交换机

    poe交换机如何选择_怎么选择交换机PoE交换机不但可以实现普通交换机的数据传输功能还能同时对网络终端进行供电。如果你打算选择或者使用PoE交换机,这些知识点一定要看,可以让你少走弯路、少些麻烦。接下来,杭州飞畅科技的小编来为大家介绍下PoE交换机的选择和使用要点,一起来看看吧!一,选择PoE交换机时需要注意什么?1,不要图便宜,尤其是核心的东西,这个你懂的国内就是一个各种产品泛滥的大市场,PoE交换机也不例外。市场上的PoE交换机大大小小的品牌数不胜数,价格和质量差别很大。有些初接触PoE供电的人士,认为只要是PoE交换机就行.

    2022年10月4日
    4
  • 2.什么是线程间的通信 ?怎么实现线程通信

    2.什么是线程间的通信 ?怎么实现线程通信2.1什么是线程通信以及实现步骤线程间通信的模型有两种:共享内存和消息传递线程通信其实就是,实现线程的交替工作,并传递信息线程间的通信具体步骤:(涉及上中下部)创建资源类,在资源类中船舰属性和操作方法 在资源类操作方法:判断、操作、通知 创建多个线程,调用资源类的操作方法 防止虚拟唤醒问题(if判读,只会判断一次)2.2synchronized案例操作线程的时候,等待线程使用wait()通知另外的线程操作用notify()、notifyAll()假设…

    2022年7月16日
    21
  • 二进制减法计算,负数原码、反码和补码之间的关系

    二进制减法计算,负数原码、反码和补码之间的关系二进制减法类似于十进制的减法,我们从十进制的减法来推出二进制减法如何进行运算。二进制计算例如101001-011010=001111(41-26=15)的运算。灰色部分为计算过程,绿色字为被减一得到的数,红色字为借一后得到的数。在运算过程中,从右往左逐位进行计算。1-0=1; 0不够减1,向前借一后加2变成2;2-1=1; 0在上一步被借一所以减为-1,-1不够减…

    2026年3月8日
    5
  • 防盗链原理

    防盗链原理引子:明明引用了一个正确的图片地址,但显示出来的却是一个红叉或写有“此图片仅限于***网站用户交流沟通使用”之类的“假图片”(下图便是网易博客的防盗链效果)。用嗅探软件找到了多媒体资源的真实地址用下载软件仍然不能下载。下载一些资源时总是出错,如果确认地址没错的话,大多数情况都是遇上防盗链系统了。常见的防盗链系统,一般使用在图片、音视频、软件等相关的资源上。        一、什么是

    2022年7月23日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号