下面的代碼段在前幾天才正常作業。有沒有什么方法可以輕松提取這個div class="row mb-4 "里面的所有資料。我所想的是,如果對頁面進行額外的修改,仍然不會影響到腳本。
import請求
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/token/"/span>
token = "0x4ce1a5cb12151423ea479cfd0c52ec5021d108d8"/span>
tokenurl = str(url) str(token)。
contractpage = requests.get(tokenurl,header)
ca = BeautifulSoup(contractpage.content, 'html.parser')
tokenholders = ca.find(id='ContentPlaceHolder1_tr_tokenHolders').get_text()
tokenholdersa = (((tokenholders.strip().strip("Holders:")).strip(" a" )).strip()
tholders = ((((tokenholders.strip()).strip("Holders:")).strip()).strip(" a")).strip()
tokenaname = ca.find('span', class_='text-secondary small').get_text() 。
def get_transfer_count(span class="hljs-built_in">str:token)->str。
with requests.Session() as s:
s.headers = {'User-Agent':'Mozilla/5.0'}。
r = s.get(f'https://bscscan.com/token/{token}')
try:
sid = re.search(r "var sid = '(.*?)'"/span>, r.text).group(1)
r = s.get(f'https://bscscan.com/token/generic-tokentxns2?m=normal&contractAddress={token}&a=&sid={sid}&p=1'/span>)
return re.search(r "var totaltxns = '(.*?)'", r.text).group(1)
except:
pass。
transcount = get_transfer_count(token)
print ("Token: ", tokenaname)
print ("Holders: ", tholders)
print ("Transfers: ", transcount)
先前的輸出:
Token。 賓蒙
持有者。 27,099
轉讓。439,636
希望改進輸出:
Token。 賓蒙
價格:$0.01 @ 0.000037 BNB (-22.41%)
完全稀釋的市值:14,011,783.50美元
總供應量。 975,000,000 BIN
持有者。 27,099地址
轉讓。 439,636
Contract: 0xe56842ed550ff2794f010738554db45e60730371
小數。 18
官方網站: https://binemon.io/
社會概況。
https://twitter.com/binemonnft
https://t.me/binemonchat
https://docs.binemon.io/
https://coinmarketcap.com/currencies/binemon/
https://www.coingecko.com/en/coins/binemon/
uj5u.com熱心網友回復:
嘗試:
import requests
from bs4 import BeautifulSoup
header = {
"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:92.0) Gecko/20100101 Firefox/92.0"/span>。
}
tokenurl = (
"https://bscscan.com/token/0x7083609fce4d1d8dc0c979aab8c869ea2c873402"
)
contractpage = requests.get(tokenurl, headers=header)
ca = BeautifulSoup(contractpage.content, "html.parser")
name = ca.h1.span.get_text( strip=True)
price = ca.select_one(".card-body .d-block").get_text(strip=True)
cap = ca.select_one("#pricebutton").get_text(strip=True)
print("Token:"/span>, name)
print("PRICE:", price)
print("Full Diluted Market Cap:"/span>, cap)
print()
for c in ca.select(".row .col-md-8") 。
pt = c.find_previous(class_="col-md-4").get_text(strip=True)
t = c.get_text(strip=True, separator=" ").split("(")[0]
if pt == "Social Profiles:"。
links = [a["href"].strip() for a in c.select("a")]
print(pt, *links, sep="
")
else:
print(pt, t)
列印:
Token: Binance-Peg Polkadot代幣
價格:30.35美元@ 0.079643 BNB(-10.39%)
完全攤薄的市值:485,657,455.49美元
總供應量: 15,999,999.991309點
持有者: 80,065個地址
轉讓。-
Contract: 0x7083609fce4d1d8dc0c979aab8c869ea2c873402
小數點: 18
官方網站: https://polkadot.network/
社會概況。
https://polkadot.network/blog
https://reddit.com/r/dot
https://twitter.com/polkadotnetwork
https://github.com/w3f
https://polkadot.network/PolkaDotPaper.pdf
https://coinmarketcap.com/currencies/polkadot-new/
https://www.coingecko.com/en/coins/polkadot/
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/323505.html
標籤:
下一篇:圖片沒有從awsS3加載
