如何解决在 div 中提取类在 Python Beautifulsoup 中返回 None
下面的代码段并没有真正显示预期的数据,因为它返回 None。任何关于如何正确执行的想法和意见都会非常有帮助。
from bs4 import BeautifulSoup
from urllib import request
from urllib.request import Request,urlopen
url = "https://bscscan.com/block/9478762"
headers = {"User-Agent": "Mozilla/5.0"}
req = Request(url,headers=headers)
html = urlopen(req).read()
soup = BeautifulSoup(html,"html.parser")
blockheight = soup.find('div',attrs={'class': 'font-weight-sm-bold mr-2'})
print ("Block Height: ",blockheight)
blocktimestamp = soup.find('div',attrs={'class': 'far fa-clock small mr-1'})
print ("Timestamp ",blocktimestamp)
blocktransactions = soup.find('div',class_ = 'u-label u-label--value u-label--primary rounded my-1')
print ("Transactions ",blocktransactions)
电流输出:
Block Height: None
Timestamp: None
Transactions: None
想要的输出:
Block Height: 9478762
Timestamp: Jul-25-2021 11:43:52 PM +UTC
Transactions: 223 -> transactions https://bscscan.com/txs?block=9478762
37 -> contract internal transactions https://bscscan.com/txsInternal?block=9478762
Validated by: 0xb218c5d6af1f979ac42bc68d98a5a0d796c6ab01
解决方法
我希望这会有所帮助:
from bs4 import BeautifulSoup
from urllib import request
from urllib.request import Request,urlopen
url = "https://bscscan.com/block/9478762"
headers = {"User-Agent": "Mozilla/5.0"}
req = Request(url,headers=headers)
html = urlopen(req).read()
soup = BeautifulSoup(html,"html.parser")
blockheight = soup.find('span',attrs={'class': 'font-weight-sm-bold mr-2'}).contents[0]
print ("Block Height: ",str(blockheight).replace("\n",""))
blocktimestamp = soup.find('i',attrs={'class': 'far fa-clock small mr-1'}).next_sibling
print ("Timestamp: ",str(blocktimestamp).replace("\n",""))
blocktransactions = soup.find('a',class_ = 'u-label u-label--value u-label--primary rounded my-1').contents[0]
print ("Transactions: ",blocktransactions)
输出:
Block Height: 9478762
Timestamp: 2 hrs 35 mins ago (Jul-25-2021 11:43:52 PM +UTC)
Transactions: 223 transactions
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。