Beautifulsoup4,BS4,Python解析问题

时间:2020-02-19 22:28:38

标签: python html

我正在使用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-{{​​1}}

如您所见,它们具有相同的类标识符。有什么办法可以让bs4只查找两者中的第一个?

我希望我的问题有道理,谢谢!!

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

您有两种选择:

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