在这种情况下,提取文本的最佳方法是什么?

2024-05-10 08:02:53 发布

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

我想找到并抓取所有的文本下给出了一个。 现在它返回文本和 我想学习最快的方法来处理这个问题,并用逗号格式化它

现在,我也可以通过命令分别获取每个。 但我想买20多件,所以我想找一个更快的方法。 并从中学习:D

我尝试在find和find\u中切换,并在末尾添加get\u文本。 它们都给出了一个错误

        kenmerken = BeautifulSoup(browser.page_source, 'lxml')
        details = kenmerken.find_all ('div', {'class':'detail-tab-content kenmerken'})
        try:
            tr = details[0].find_all ('td', {'class': 'value'})
        except IndexError:
            size_space = 'Unknown'
        print(tr)

结果:

    [<td class="value">
            Herenhuis

    </td>, <td class="value">
            2008
    </td>, <td class="value">
            250 m²
    </td>, <td class="value">
            -    
    </td>, <td class="value">
            -
    </td>, <td class="value">
        -
    </td>, <td class="value">
        -
    </td>, <td class="value">
        -
    </td>, <td class="value">
            -
    </td>, <td class="value">
            -
    </td>, <td class="value">
        -
    </td>, <td class="value">
        5
    </td>, <td class="value">
        -
    </td>, <td class="value">
        -
    </td>, <td class="value">
        -
    </td>, <td class="value">
        -
    </td>, <td class="value">
        -
    </td>, <td class="value">
        Ja
    </td>, <td class="value">
        -
    </td>, <td class="value">
        -
    </td>, <td class="value">
        Ja
    </td>, <td class="value">
        3.627
    </td>, <td class="value">
        64
    </td>]
[<td class="value">

Tags: 方法文本命令getvalueallfinddetails
1条回答
网友
1楼 · 发布于 2024-05-10 08:02:53

在try块中tr将是td元素的列表。如果您想要td .text,您需要迭代列表,例如使用列表理解。我用find_all替换了select——两个返回列表

tds_values = [td.text for td in details[0].select('td.value')]

如果您还想循环details,请使用:

for detail in details:
    tds_values = [td.text for td in detail.select('td.value')]

如果需要逗号分隔的字符串

tds_values = ','.join([td.text.strip() for td in detail.select('td.value')])

相关问题 更多 >