如何将一行抓取的数据从网页中分离出来,以提高可读性



当前,代码段正在运行,但所提取的数据并不十分美观。我想把这行数据分成两行

import requests, re, random
from bs4 import BeautifulSoup
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0'
}
url = "https://bscscan.com/address/0xe1fd7b4c9debac3c490d8a553c455da4979482e4"
req = requests.get(url,header, timeout=10)
soup = BeautifulSoup(req.content, 'html.parser')
creator = soup.find(id='ContentPlaceHolder1_trContract').get_text()
tokentracker = soup.find(id='ContentPlaceHolder1_tr_tokeninfo').get_text()
print (creator)
print (tokentracker)

当前输出:

ContractCreator:
0xab3a68876925ecc5f361cefe78b3dae78b971436 at txn 0xc78e35353426d2851be008bf4de269652a4ce1746d025fae5aabd72454a31715

TokenTracker:
StackDoge (STACKDOGE)

想要输出:

Contract Owner: 0xab3a68876925ecc5f361cefe78b3dae78b971436
Transaction ID: 0xc78e35353426d2851be008bf4de269652a4ce1746d025fae5aabd72454a31715
Token Name: StackDoge (STACKDOGE)

你可以用"在TXN "分隔符:

txt = "0xab3a68876925ecc5f361cefe78b3dae78b971436 at txn 0xc78e35353426d2851be008bf4de269652a4ce1746d025fae5aabd72454a31715"
x = txt.split(" at txn ")
print(f'Contract Owner: {x[0]}')
print(f'Transaction ID: {x[1]}')

这将打印:

Contract Owner: 0xab3a68876925ecc5f361cefe78b3dae78b971436
Transaction ID: 0xc78e35353426d2851be008bf4de269652a4ce1746d025fae5aabd72454a31715

尝试如下:

newlist = [x.strip() for x in creator.split("at txn")]
print("Contract Owner: " + newlist[0])
print("Transaction ID: " + newlist[1])

这是另一个你可以尝试的解决方案,

print("Contract Owner:", creator.find('a', attrs={"title": "Creator Address"}).text)
print("Transaction ID:", creator.find('a', attrs={"title": "Creator Txn Hash"}).text)
print("Token Name:", tokentracker.find("a").text)

Contract Owner: 0xab3a68876925ecc5f361cefe78b3dae78b971436
Transaction ID: 0xc78e35353426d2851be008bf4de269652a4ce1746d025fae5aabd72454a31715
Token Name: StackDoge (STACKDOGE)

最新更新