当前位置: 首页 > 知识库问答 >
问题:

用Python选择和重新排列HTML元素

楚宏胜
2023-03-14

下面的非结构化表元素如何结构化,而不使用任何库。

<table>
 <tfoot>
    <tr><td>Sum</td><td>$180</td></tr>
  </tfoot>
  <tbody>
    <tr><td>January</td><td>$100</td></tr>
  </tbody>
</table>

所需的表:

<table>
  <tbody>
    <tr><td>January</td><td>$100</td></tr>
  </tbody>
   <tfoot>
    <tr><td>Sum</td><td>$180</td></tr>
  </tfoot>
</table>

维护html元素的属性顺序很重要。我试过用BeautifulSoup。它改变了顺序。请建议任何解决此问题的pythonic方法,它不需要使用beautifulsoup或lxml。

共有1个答案

单于俊智
2023-03-14

您可以通过re使用正则表达式

import re
s = """
<table>
  <tfoot>
    <tr><td>Sum</td><td>$180</td></tr>
  </tfoot>
  <tbody>
    <tr><td>January</td><td>$100</td></tr>
 </tbody>
</table>
"""
new_s = re.sub('\<tr\>.*?\</tr\>', '{}', s).format(*re.findall('\<tr\>.*?\</tr\>', s)[::-1])

输出:

<table>
  <tfoot>
    <tr><td>January</td><td>$100</td></tr>
  </tfoot>
  <tbody>
    <tr><td>Sum</td><td>$180</td></tr>
 </tbody>
</table>
 类似资料:
  • https://imgur.com/vfhp8n7.png 当我单击B按钮时,整行隐藏 我需要硒来点击B按钮,然后点击下一个B按钮 我想执行,但是数字4352,6820每次都不一样 你有什么想法吗? 编辑

  • 问题内容: 我在python / pyspark中有一个带有列的数据框 ,依此类推...... 现在,我在此数据框中添加了新列。 现在,我必须安排这样的列的列来后 我已经完成如下 我收到此错误 为什么会发生此错误。我该如何纠正。 问题答案: 您可以用来更改列的顺序:

  • 问题内容: 我有以下HTML代码 我正在尝试使用Selenium获取选项值的列表(例如459、100等,而不是文本)。 目前,我有以下Python代码 如您所见,代码返回纯HTML,我正在使用HTMLParser库进行解析。有什么方法可以仅使用Selenium来获取选项值?换句话说,不必解析Selenium的结果吗? 问题答案: 检查一下,这是我做的,然后才知道选择模块做了什么 这样的输出

  • 通过可用于准确选择、定位和堆叠对象的工具,您可以在 Adobe Illustrator 中轻松地组织和布置图稿。这些工具可让您执行这些操作:测量和对齐对象;编组对象以便能够将其视为一个单元进行操作;有选择地隔离、锁定或隐藏对象。

  • 问题内容: 我有一堆具有相同列但顺序不同的csv文件。我们正在尝试使用SQL * Plus上载它们,但是我们需要具有固定列排列的列。 例 所需订单:ABCDEF csv文件:ACDEB(有时列不在csv中,因为它不可用) 用python可以实现吗?我们正在使用Access + Macros来做…但这太浪费时间了 PS。对不起,如果有人对我的英语能力感到沮丧。 问题答案: 您可以使用csv模块读取,

  • 我想使用道具从标题h1-h6中选择,然后将样式和文本插入标题中。我现在有: 然后我意识到我以前从来没有自动选择元素类型,甚至不知道从哪里开始。这可以用反应来完成吗,怎么做?