将 BeautifulSoup 对象转换为列表以提取数据
Converting BeautifulSoup object into list to extract data
从以下两行 python 代码中,我得到以下属于 class 'bs4.BeautifulSoup'
的 html 输出
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)
您正在寻找 tag.find_all
:
mylist = soup.find_all('span', class_='bg_low2 bold')
现在,mylist
包含您所有的 span
标签,您可以使用 mylist[i].text
.
从以下两行 python 代码中,我得到以下属于 class 'bs4.BeautifulSoup'
的 html 输出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)
您正在寻找 tag.find_all
:
mylist = soup.find_all('span', class_='bg_low2 bold')
现在,mylist
包含您所有的 span
标签,您可以使用 mylist[i].text
.