Python中的HTML表格排序(含锚点和单元格数据)

2024-10-01 09:42:07 发布

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

我有必要用Python对一个给定的HTML表进行如下结构的排序。在

<table>
    <tr>
        <td><a href="#">ABCD</a></td>
        <td>A23BND</td>
        <td><a title="ABCD">345345</td>
    </tr>
    <tr>
        <td><a href="#">EFG</a></td>
        <td>Add4D</td>
        <td><a title="EFG">3432</td>
    </tr>
    <tr>
        <td><a href="#">HG</a></td>
        <td>GJJ778</td>
        <td><a title="HG">2341333</td>
    </tr>

</table>

我在做这样的事情:

^{pr2}$

问题是它按<td>内的文本进行排序。我希望能够按锚点值而不是href进行排序。在

我能做些什么来达到这个目的呢?谢谢。在


Tags: 排序titlehtmltablehg事情结构tr
3条回答

我知道这不是你的问题,但这类事情的最佳实践是使用Javascript。你会在你的网站上获得更好的用户体验(如果你这么做的话)。在

这个js库非常好用: http://www.kryogenix.org/code/browser/sorttable/

sort方法具有可值的key和{}参数,可用于自定义排序。如果用排序所需的额外信息扩充data数据结构,则可以在调用sort中使用key或{}(具体取决于具体需要)来实现您想要的结果。下面是一个简单的例子:

In [60]: ids = [1, 2, 3]
In [61]: score = {1: 20, 2: 70, 3: 40}
In [62]: ids.sort(key=lambda x: score[x])
In [63]: ids
Out[63]: [1, 3, 2]

在这里,我根据score字典中每个id的分数对ids列表进行排序。在

它是按文本排序的,因为这就是你提取的作为键的内容

key = elem.findtext(colName)

我假设colName是一些标记字符串,findtext将只找到与该标记匹配的第一个子元素的文本。如果您想要的是使用某个属性的值作为键(例如title?)一个<a>

^{pr2}$

会这么做的。确切地说,你想用什么作为钥匙?在

相关问题 更多 >