Python 3 BS4 - <td> 在指定<tr>中返回第一个



想要获取HTML表格行中的第一个值。HTML 表格行如下所示:

Buy       Sell       Sell

。我的代码看起来像:

page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
table = soup.findAll('tr', {'class' :'last'})
for r in range(len(table)):
print(table[r].text)

。当前返回:

Buy
Sell
Sell

。应该如此,但是我只想检索"买入"值。如果有帮助,则该值的 HTML 定位符是

td class = "current" .... </td

我尝试在我的代码中使用切片功能 [1]、[-1]、[1:1] 等,但似乎无法弄清楚。有人可以协助吗?谢谢一百万。

您可以使用.find()而不是.findAll()来获取第一个匹配项:

soup.find('tr', {'class': 'last'}).get_text()

或者,如果您需要进入第一个tr的第一个内部td元素:

soup.find('tr', {'class': 'last'}).td.get_text()

其中.td.find("td")的简写。


或者,您可以强制执行current类检查(假设您要追求内部td元素的内容(:

soup.select_one("tr.last td.current").get_text()

其中tr.last td.current是一个 CSS 选择器,它将匹配具有类currenttr元素内具有类lasttd元素。

最新更新