尝试从HTML表创建文本元素列表

2024-10-03 21:31:57 发布

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

我有这样一个表结构:

<table class="member_sheet_table standard_list_table rwdCompactible rwdTable" data-ftDefaultContimes="1">
    <tbody class="rwdTbody">
        <tr class="rwdTr" data-ftrowtype=":F"><td class="sT rwdTd"><div class="time_slot">7:00 AM</div> 
        <tr class="rwdTr" data-ftrowtype=":F"><td class="sT rwdTd"><div class="time_slot">7:10 AM</div>     
        <tr class="rwdTr" data-ftrowtype=":F"><td class="sT rwdTd"><div class="time_slot">7:20 AM</div>     
        <tr class="rwdTr" data-ftrowtype=":F"><td class="sT rwdTd"><div class="time_slot">7:30 AM</div>
        <tr class="rwdTr" data-ftrowtype=":F"><td class="sT rwdTd"><div class="time_slot">7:40 AM</div>        
        <tr class="rwdTr" data-ftrowtype=":F"><td class="sT rwdTd"><div class="time_slot">7:50 AM</div>
    </tbody>
</table>

我想从表中创建一个列表startTime()

startTime(0) = 7:00 AM
startTime(1) = 7:10 AM
startTime(2) = 7:20 AM
...

没有任何成功。帮助


Tags: divdatatimetableamtrclasstd
1条回答
网友
1楼 · 发布于 2024-10-03 21:31:57

以下是使用BeautifulSoup的示例:

html = '''<table class="member_sheet_table standard_list_table rwdCompactible rwdTable" data-ftDefaultContimes="1">
    <tbody class="rwdTbody">
        <tr class="rwdTr" data-ftrowtype=":F"><td class="sT rwdTd"><div class="time_slot">7:00 AM</div></td></tr>
        <tr class="rwdTr" data-ftrowtype=":F"><td class="sT rwdTd"><div class="time_slot">7:10 AM</div></td></tr>
        <tr class="rwdTr" data-ftrowtype=":F"><td class="sT rwdTd"><div class="time_slot">7:20 AM</div></td></tr>
        <tr class="rwdTr" data-ftrowtype=":F"><td class="sT rwdTd"><div class="time_slot">7:30 AM</div></td></tr>
        <tr class="rwdTr" data-ftrowtype=":F"><td class="sT rwdTd"><div class="time_slot">7:40 AM</div></td></tr> 
        <tr class="rwdTr" data-ftrowtype=":F"><td class="sT rwdTd"><div class="time_slot">7:50 AM</div></td></tr>
    </tbody>
</table>
'''

# solution using BeautifulSoup
from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'html5lib')

timeslots = [el.text for el in soup.select('table.member_sheet_table > tbody > tr > td > div.time_slot')]

print(timeslots)

相关问题 更多 >