【发布时间】:2018-11-28 17:57:13
【问题描述】:
我有一些看起来像这样的 html(这表示表中的数据行)
<tr bgcolor="#f4f4f4">
<td height="25" nowrap="NOWRAP"> CME_ES </td>
<td height="25" nowrap="NOWRAP"> 07:58:46 </td>
<td height="25" nowrap="NOWRAP"> Connected </td>
<td height="25" nowrap="NOWRAP"> 0 </td>
<td height="25" nowrap="NOWRAP"> 0 </td>
<td height="25" nowrap="NOWRAP"> 0 </td>
<td height="25" nowrap="NOWRAP"> 0 </td>
<td height="25" nowrap="NOWRAP"> 07:58:00 </td>
<td height="25" nowrap="NOWRAP" bgcolor="#55aa2a"> --:--:-- </td>
<td height="25" nowrap="NOWRAP"> 0 </td>
<td height="25" nowrap="NOWRAP"> 0 </td>
<td height="25" nowrap="NOWRAP"> 01:25:00 </td>
<td height="25" nowrap="NOWRAP"> 22:00:00 </td>
</tr>
.
.
.
<tr bgcolor="#ffffff">
<td height="25" nowrap="NOWRAP"> CME_NQ </td>
<td height="25" nowrap="NOWRAP"> 07:58:46 </td>
<td height="25" nowrap="NOWRAP"> Connected </td>
<td height="25" nowrap="NOWRAP"> 0 </td>
<td height="25" nowrap="NOWRAP"> 0 </td>
<td height="25" nowrap="NOWRAP"> 191 </td>
<td height="25" nowrap="NOWRAP"> 0 </td>
<td height="25" nowrap="NOWRAP"> 07:58:01 </td>
<td height="25" nowrap="NOWRAP" bgcolor="#55aa2a"> --:--:-- </td>
<td height="25" nowrap="NOWRAP"> 0 </td>
<td height="25" nowrap="NOWRAP"> 0 </td>
<td height="25" nowrap="NOWRAP"> 01:25:00 </td>
<td height="25" nowrap="NOWRAP"> 22:00:00 </td>
</tr>
我有从每个数据集中获取颜色的代码:
mrkt_stat = []
for td in site.findAll('td'):
if 'bgcolor' in td.attrs:
mrkt_stat.append(td.attrs['bgcolor'])
打印此列表将为我提供每行数据中所有颜色的列表,这很好。
我还有从每个数据集中抓取行数据的代码:
data = []
for row in site.findAll('tr'):
cols = row.find_all('td')
cols = [ele.text.strip() for ele in cols]
data.append([ele for ele in cols if ele])
这也很好,它返回一个列表列表,每个子列表是我正在抓取的表中的一行数据。
但是,我想附加/组合此代码,以便仅在行集中的十六进制颜色代码为“#55aa2a”时将信息添加到 data 列表中
编辑:当我将返回的列表输入到 pandas DataFrame 时,需要剥离返回的数据,而这个 DataFrame 就是将要呈现的内容
【问题讨论】: