#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