【问题标题】:Beautiful Soup and Pandas extract number美丽的汤和熊猫提取物编号
【发布时间】:2021-06-05 13:39:33
【问题描述】:

我有这个结构:

<tr id="table3620_0_5" class="l1">
            <td class="r">       North America</td>
            <td x:num="02/12/20">02/12/20</td>
            <td x:num="" class="r">5553226</td>
            <td x:num="" class="r">TEST TWI</td>
            <td x:num="0.03365930063626542">3.37 %</td>
            <td/>
            <td x:num="0.03365930063626542">3.37 %</td>
         </tr>

使用 pandas read html 我可以提取表格,但我对 x:num 值而不是标签的值感兴趣。我也在尝试用 Beautiful Soup 探索解决方案,但到目前为止我什么也没想到

【问题讨论】:

    标签: python pandas beautifulsoup


    【解决方案1】:

    你可以试试beautifulsoup

    from bs4 import BeautifulSoup
    import re
    
    s = """<tr id="table3620_0_5" class="l1">
                <td class="r">       North America</td>
                <td x:num="02/12/20">02/12/20</td>
                <td x:num="" class="r">5553226</td>
                <td x:num="" class="r">TEST TWI</td>
                <td x:num="0.03365930063626542">3.37 %</td>
                <td/>
                <td x:num="0.03365930063626542">3.37 %</td>
             </tr>"""
    
    soup = BeautifulSoup(s, 'lxml')
    
    output = [i.get('x:num') for i in soup.findAll("td", {"x:num" : True})]
    
    print(output)
    
    ['02/12/20', '', '', '0.03365930063626542', '0.03365930063626542']
    

    output[-2:]
    
    ['0.03365930063626542', '0.03365930063626542']
    

    【讨论】:

    • 我试图只提取最后两个 x:num 上面的其余部分应该是通常的值标签
    • output[-2:] 呢?
    猜你喜欢
    • 1970-01-01
    • 2021-09-12
    • 2015-05-08
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 2020-01-19
    • 2021-04-03
    • 2016-09-11
    相关资源
    最近更新 更多