Beautifulsoup4,BS4,Python解析问题

问题描述 投票:0回答:2

我正在使用bs4解析网页。我要选择的数据类型不止一种,具有相同的类名。

我的解析代码:

rows_ranking = soup_ranking.select('#current-poll tbody tr .left')

我要分析的页面在表行中有两个不同的“ .left”标识符。如何选择我想要的那个。这是其中两个表行的示例(一个我想让我的程序解析,另一个我想忽略)

1-<td class="left " data-stat="school_name" csk="Baylor.015"><a href="/cbb/schools/baylor/2020.html">Baylor</a></td>

2-<td class="left " data-stat="conf_abbr" csk="Big 12 Conference.015.001"><a href="/cbb/conferences/big-12/2020.html" title="Big 12 Conference">Big 12</a></td>

您可以看到它们具有相同的类标识符。有没有一种方法可以让bs4仅查找两者中的第一个?

我希望我的问题有意义,在此先感谢!

python html
2个回答
0
投票

您有两个选择:

  1. 您可以使用soup.find_all并循环显示结果。
  2. 首先使用css选择器。
  3. 检查并复制该元素的选择器。

0
投票

已经有一段时间没有使用BS4或python了,但是如果我没记错的话,类似的方法应该可以使数据中具有data_stat和school_name的所有元素。

results = soup.findAll("td", {"data_stat" : "school_name"}) 

或者如果您希望所有结果都具有data_stat属性,而该值无关紧要-->

results = soup.findAll("td", {"data_stat" : True})
© www.soinside.com 2019 - 2024. All rights reserved.