首页 > 解决方案 > Python BeautifulSoup:如何从 TEXT 中获取 TEXT

问题描述

我不知道如何从这个标签中获取 TEXT 和 NUMBERS<td>THERE IS TEXT I WANT TO GET</td>并且还有“Quantity”<td>QUANTITY</td>

link:https://bscscan.com/tokenholdings?a=0x00a2c3d755c21bc837a3ca9a32279275eae9e3d6

有我想要得到的图像。

提前致谢

在此处输入图像描述

标签: pythonpython-3.xbeautifulsoup

解决方案


网站中的表格是动态加载的,所以不能用requests. 你必须使用selenium才能做到这一点。这是完整的代码:

from bs4 import BeautifulSoup
from selenium import webdriver
import time
import pandas as pd

url = 'https://bscscan.com/tokenholdings?a=0x00a2c3d755c21bc837a3ca9a32279275eae9e3d6'

driver = webdriver.Chrome()

driver.get(url)

time.sleep(5)

html = driver.page_source

driver.close()

soup = BeautifulSoup(html,'html5lib')

tbody = soup.find('tbody', id = "tb1")

tr_tags = tbody.find_all('tr')

symbols = []
quantities = []

for tr in tr_tags:
    td_tags = tr.find_all('td')
    symbols.append(td_tags[2].text)
    quantities.append(td_tags[3].text)

df = pd.DataFrame((symbols,quantities))

df = df.T

df.columns = ['Symbol','Quantity']

print(df)

输出:

  Symbol      Quantity
0    BNB   17.98420742
1   Cake   19.76899295
2    ANY             1
3   FREE         1,502
4    LFI  326.87340092
5    LFI  326.87340092

推荐阅读