从bs4元素标签中获取特定数据

时间:2018-08-19 21:10:54

标签: python html beautifulsoup

我正在使用bs4从网站获取数据。我正在使用 select 方法执行CSS选择操作。但是我无法提取我想要的值。

这是我的代码:

data = bs4.BeautifulSoup(data.content,'lxml')
html_PER = data.select('tr[title="Price to Earnings Ratio Basico"]')`

这就是我得到的:

[<tr title="Price to Earnings Ratio Basico">
 <td>PER Basico:</td>
 <td align="right">
 <span class="cash daily" data-decimals="2" data-format="%s%v" data-suffix="" data-symbol="">16,53639823662936</span>
 </td>
 </tr>]

我想提取16.53值。但是我不知道如何。

我敢肯定有最简单的方法来做到这一点。但是我是Web爬虫的新手,我对html一无所知。

1 个答案:

答案 0 :(得分:0)

您可以使用CSS选择器:

td > span.cash.daily

在结果html_PER元素上。

因此,您可以这样做:

values = [tr.select_one('td > span.cash.daily').text for tr in html_PER]

请注意,当您知道只有一个标记元素时,请使用select_one而不是select,以便通过在第一场比赛后尽早爆发来获得更快的响应。