Как извлечь данные из столбца таблицы HTML в Python

#python-3.x #beautifulsoup #html-parsing

#python-3.x #beautifulsoup #html-синтаксический анализ

Вопрос:

У меня есть длинный список строк таблицы. Первые три элемента выглядят так.

 <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>amp;nbsp;</td></tr>

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

<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="latest_wsp50knt120hr_5km.kmz">latest_wsp50knt120hr..amp;></a></td><td align="right">2020-11-19 21:24  </td><td align="right">1.9K</td><td>amp;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..amp;></a></td><td align="right">2020-11-19 09:24  </td><td align="right"> 17K</td><td> </td></tr>
 

Есть ли способ извлечь href и дату / время из переменной parsed_html?

Комментарии:

1. Что вы пробовали до сих пор, не могли бы вы, пожалуйста, показать нам свои усилия?

2. я отредактирую вопрос, чтобы показать, что я пытаюсь.

Ответ №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..amp;></a></td><td align="right">2020-11-19 21:24  </td><td align="right"> 14K</td><td>amp;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>amp;nbsp;</td></tr>', '<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="latest_wsp64knt120hr_5km.kmz">latest_wsp64knt120hr..amp;></a></td><td align="right">2020-11-19 21:24  </td><td align="right">715 </td><td>amp;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