试图获取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]等,但似乎无法弄清楚。有人可以协助吗?谢谢你一百万。
答案 0 :(得分:2)
您可以只使用.find()
而不是.findAll()
来获得第一个匹配项:
soup.find('tr', {'class': 'last'}).get_text()
或者,如果需要进入第一个td
的第一个内部tr
元素:
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,它将与具有td
类的current
元素内的具有tr
类的last
元素相匹配。 / p>