【发布时间】:2022-02-03 07:54:23
【问题描述】:
我尝试将两种行从网站转换为表格。
第一个是这样的,
<tr id="eventRowId_750"> <td class="first left">All Day</td> <td class="flagCur left"><span class="ceFlags France float_lang_base_1" data-img_key="France" title="France"> </span></td> <td class="left textNum sentiment"><span class="bold">Holiday</span></td> <td class="left event" colspan="6">French - Flower Festival</td> </tr>
第二种行是这样的,
<tr class="js-event-item revised" data-event-datetime="2022/02/02 01:00:00" event_attr_id="114" id="eventRowId_444333"> <td class="first left time js-time" title="">01:00</td> <td class="left ImageCur noWrap"><span class="ceImages Australia" data-img_key="Australia" title="Australia"> </span> AUS</td> <td class="left textNum sentiment noWrap" data-img_key="bull1" title="Low Impact"><i class="grayFullBullishIcon"></i><i class="grayEmptyBullishIcon"></i><i class="grayEmptyBullishIcon"></i></td> <td class="left event" title="Click to view more info on Australian Budget"><a href="australian-budget-114" target="_blank"> Australian Budget (Dec)</a> </td> <td class="bold act blackFont event-444333-actual" id="eventActual_444333" title="">-5M</td> <td class="fore event-444333-forecast" id="eventForecast_444333"> </td> <td class="prev greenFont event-444333-previous" id="eventPrevious_444333"><span title="Revised From -3M">-2M</span></td> <td class="alert js-injected-user-alert-container" data-event-id="114" data-name="Australian Budget" data-status-enabled="0"> <span class="js-plus-icon alertBellGrayPlus genToolTip oneliner" data-tooltip="Create Alert" data-tooltip-alt="Alert is active"></span> </td> </tr>
我正在尝试使用 python 和 beautifulsoup 将它们转换为行。我使用以下代码,
for items in soup.select("tr"):
data = [item.get_text(strip=True) for item in items.select("th,td")]
print(data)
但我的输出是这样的,
['All Day', '', 'Holiday', 'French - Flower Festival']
['01:00', 'AUS', '', 'Australian Budget (Dec)', '-5M', '', '-2M', '']
我怎样才能让我将“低影响”文本放入第一列中“假期”的第三列,并将第一行中的名称“法国”保存到第二列中并使其看起来像这样?
['All Day', 'France', 'Holiday', 'French - Flower Festival']
['01:00', 'AUS', 'Low Impact', 'Australian Budget (Dec)', '-5M', '', '-2M', '']
这部分并不是很重要,但是,如果跨度标题存在,是否可以通过将其添加到列表末尾来保存它?它说“从-3M修订”的部分。所以它可能看起来像这样,
['All Day', '', 'Holiday', 'French - Flower Festival']
['02:45', 'AUS', 'Low Impact', 'Australian Budget (Dec)', '-5M', '', '-2M', '', "Revised From -3M"]
【问题讨论】:
-
我在您的 html 中没有看到
All Day或France。 -
对不起@JackFleeting 我修好了,请看一下
-
您是否在第一个
<tr>的第一个<span>的data-img_key属性的输出中获得France? -
我不能把它弄出来这就是我问的原因
-
但是可以的
标签: javascript python html css beautifulsoup