【问题标题】:How to extract data from HTML table column in Python如何从 Python 中的 HTML 表格列中提取数据
【发布时间】:2021-03-22 00:50:35
【问题描述】:

我有一长串表格行。前三个元素如下所示。

<tr><td valign="top"><img src="/icons/compressed.gif" alt="[   ]"></td><td><a href="wsp_120hr5km_latest.zip">wsp_120hr5km_latest.zip</a></td><td align="right">2020-11-19 21:24  </td><td align="right"> 15K</td><td>&nbsp;</td></tr>

<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="latest_wsp64knt120hr_5km.kmz">latest_wsp64knt120hr..&gt;</a></td><td align="right">2020-11-19 21:24  </td><td align="right">715 </td><td>&nbsp;</td></tr>

<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="latest_wsp50knt120hr_5km.kmz">latest_wsp50knt120hr..&gt;</a></td><td align="right">2020-11-19 21:24  </td><td align="right">1.9K</td><td>&nbsp;</td></tr>

从其中一个中提取 href 和日期/时间的最干净的方法是什么。

到目前为止,我有以下内容

parsed_html = BeautifulSoup(tbl_row[0])
print("parsed html",parsed_html)

打印出来

parsed html <tr><td valign="top"><img alt="[   ]" src="/icons/compressed.gif"/></td><td><a href="2020111906_wsp_120hr5km.zip">2020111906_wsp_120hr..&gt;</a></td><td align="right">2020-11-19 09:24  </td><td align="right"> 17K</td><td> </td></tr>

有没有办法从 parsed_html 变量中提取 href 和日期/时间?

【问题讨论】:

  • 到目前为止你做了什么,你能告诉我们你的努力吗?
  • 我将编辑问题以显示我正在尝试的内容。

标签: python-3.x beautifulsoup html-parsing


【解决方案1】:
from bs4 import BeautifulSoup
tbl_row = ['<tr><td valign="top"><img src="/icons/compressed.gif" alt="[   ]"></td><td><a href="wsp_120hrhalfDeg_latest.zip">wsp_120hrhalfDeg_lat..&gt;</a></td><td align="right">2020-11-19 21:24  </td><td align="right"> 14K</td><td>&nbsp;</td></tr>', '<tr><td valign="top"><img src="/icons/compressed.gif" alt="[   ]"></td><td><a href="wsp_120hr5km_latest.zip">wsp_120hr5km_latest.zip</a></td><td align="right">2020-11-19 21:24  </td><td align="right"> 15K</td><td>&nbsp;</td></tr>', '<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="latest_wsp64knt120hr_5km.kmz">latest_wsp64knt120hr..&gt;</a></td><td align="right">2020-11-19 21:24  </td><td align="right">715 </td><td>&nbsp;</td></tr>']


for i in tbl_row:
    parsed_html = BeautifulSoup(i)
    row_val = parsed_html.find_all('td')
    print(row_val[1].find('a')["href"],row_val[2].getText())

打印出来

wsp_120hrhalfDeg_latest.zip 2020-11-19 21:24  
wsp_120hr5km_latest.zip 2020-11-19 21:24  
latest_wsp64knt120hr_5km.kmz 2020-11-19 21:24  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2015-06-10
    • 2019-01-20
    • 2021-06-22
    相关资源
    最近更新 更多