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

2024-09-30 16:39:49 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,代码段正在运行,但显示的数据不太直观。我想把这行数据一分为二

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)

Tags: 数据textimportidurlgetfindrequests
3条回答

可以使用“at 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)

相关问题 更多 >