Преобразование объекта BeautifulSoup в список для извлечения данных
Из следующих двух строк кода Python я получаю следующий вывод html, который принадлежит классу 'bs4.BeautifulSoup'
site_link = soup.find_all('a', string='Aberdeen')[0]
row = site_link.findParent('td').findParent('tr').findAll('td')
<html><body><p>[</p><td><a href="../networks/site-info?site_id=ABD">Aberdeen</a><br/>
<a class="smalltext" href="https://uk-air.defra.gov.uk/assets/graphs/ABD_weekly_m.png">Timeseries Graph</a></td>,
<td class="center"><span class="bg_low2 bold">48 (2 Low)</span></td>,
<td class="center"><span class="bg_low1 bold">4 (1 Low)</span></td>,
<td class="center"><span title="Not Measured">n/m</span></td>,
<td class="center"><span class="bg_low1 bold">2 (1 Low)</span></td>,
<td class="center"><span class="bg_low1 bold">6 (1 Low)
</span>
</td>,
<td>19/08/2017<br/>17:00:00</td>]</body></html>
Как я могу превратить его в список, с помощью которого я могу извлечь элементы, например, где мой список называется mylist:
>>>print(mylist[1].text)
48 (2 Low)
1 ответ
Решение
Ты ищешь tag.find_all
:
mylist = soup.find_all('span', class_='bg_low2 bold')
Сейчас, mylist
содержит все ваши span
теги, и вы можете получить доступ к span
данные с mylist[i].text
,