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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 黑盒测试用例设计 二[通俗易懂]

    黑盒测试用例设计 二[通俗易懂]因果图法一.方法简介1.定义是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。2.因果图法产生的背景等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。如果在测试时必须考虑输入条件…

    2022年4月30日
    41
  • windows10系统下vue开发环境搭建

    windows10系统下vue开发环境搭建安装NodeJs下载地址:http://nodejs.cn/download/到官网下载自己系统对应的版本,按照推荐的方式默认安装,这里不再赘述。安装完成后,打卡powershell,执行命令node-v查询一下,检查是否正常安装。如果提示找不到node命令,添加node安装路径到系统环境变量,重启powershell,再试。如果你安装的是旧版本的npm,可以很容易得通过npm命令来升级。sudonpminstallnpm-g#linuxnpminstallnpm-g

    2022年10月20日
    0
  • DSP的入门教程「建议收藏」

    DSP的入门教程「建议收藏」(1)第一步:打开CCS5.2,新建一个工程。(2)第二步:输入工程名后点击“finish”如图(3)第三步:右键单击工程名-“properties“如图(4)第四步:所有头文件路径添加完成后,点击“ok”,如图(5)第五步:添加工程所需头文件,如图依次添加需要头文件,添加时按下图添加:添加完成后,如图:(6)第六步:程序编写(7)第七步:对程序进行编译。编译结果:…

    2022年9月7日
    0
  • 黑盒测试用例设计之nextdate问题[通俗易懂]

    黑盒测试用例设计之nextdate问题[通俗易懂]首先已知有三个变量:月份,日期和年变量月份,日期和年都为整数,且都满足条件:1<=月份<=121<=日期<=311912<=年<=2012等价类划分法1.首先输入数据,划分等价类2.建立等价类表3.设计测试用例原型4.考虑隐含需求分为平年和闰年进行讨论,主要针对二月份。边界值分析法首先明晰三个定义:内点:范围内部的点上点:边界…

    2022年6月8日
    28
  • 白嫖 IObit 系列软件例如 IObit Uninstaller

    白嫖 IObit 系列软件例如 IObit Uninstaller一、下载version.dllhttps://wws.lanzous.com/iFhkhm0g3qh二、将它复制到安装目录三、看到Pro即成功使用注意:右下角管理注册码别点,否则会闪退,闪退重启程序一样正常使用

    2022年10月20日
    0
  • pki体系包括_pki证书丢失

    pki体系包括_pki证书丢失一PKI简介PKI(PublicKeyInfrastructure)公共密钥基础建设,又称为公开密钥基础架构、公钥基础建设、公钥基础设施或公钥基础机构,是一组由硬件、软件、参与者、管理政策与流程组成的基础架构,能够为所有网络应用提供加密和数字签名等密码服务及所必须的密钥和证书管理体系,简单来说PKI就是利用公钥理论和技术建立的提供的安全服务设施,是信息安全技术的核心。其…

    2022年8月22日
    6

发表回复

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

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