希望获取 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 selector它将匹配具有 last
类的 tr
元素内具有 current
类的 td
元素。
关于Python 3 BS4 - 返回指定 <tr> 中的第一个 <td>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51977501/