Python:如果属性匹配,则获取html标记之间的数据并将其放入lis

2024-09-28 03:18:29 发布

您现在位置:Python中文网/ 问答频道 /正文

这是html文件的一部分。在

......
......
<tr>
<td color="white" style="color:black; bgcolor="#ffff00">Adam</th>
<td color="white" style="color:white; bgcolor="#ff9900">450231</th>
<td color="white" style="color:black; bgcolor="#cc0000">658902</th>
</tr>
.......
.......
<tr>
<td color="white" style="color:black; bgcolor="#ffff00">John</th>
<td color="white" style="color:white; bgcolor="#ff9900">8734658</th>
<td color="white" style="color:black; bgcolor="#cc0000">90865</th>
</tr>
.......
.......

如果bgcolor="#ff9900",我需要提取450231和8734658并将它们放入一个列表中

到目前为止,我已经做到了。。在

^{pr2}$

在解析器.data包含['\n', 'Adam', '\n', '450231', '\n', '658902\n', '\n', '\n', '\n'....]而它应该只包含['450231', '8734658']我不确定我哪里出错了。在


Tags: 文件stylehtmljohntrcolortdblack
1条回答
网友
1楼 · 发布于 2024-09-28 03:18:29

您的录制标志似乎始终处于打开状态,但初始化时除外。您可能需要在适当的时候将其重置为零。因为标记是为所有标记设置的,所以您将始终在列表中附加数据。这主要是因为您的'th'标记在HTML中不存在。先更正HTML。在

编辑:只要读到HTML不在你的控制之下。我不确定签入'th'结束标记是否会成功。尝试在endtag中打印标记。如果不是th,那么控制就永远达不到。不如用正则表达式来匹配它。如果beautiful soup无法解析它,则可能需要使用正则表达式。在


pattern = '<td.*?bgcolor="#ff9900".*?>(.*?)</th>'
re.findall(pattern, html) 

会给你结果的。在

相关问题 更多 >

    热门问题