使用selenium库自动化操作浏览器,打开网页等,通过find_elements等方法获取相应元素,并提取需要的文本,代码如下:
from selenium import webdriver
import time
drvier = webdriver.Chrome()
drvier.get('https://dappradar.com/nft/collections')
time.sleep(5)
# 通过css选择器获取项目名称元素,注意css中有空格则必须选择find——elements方法
names = drvier.find_elements_by_css_selector('[class="sc-fvhGYg kHEClt nft-name-link"]')
print(len(names))
name = []
for i in range(len(names)):
name.append(names[i].text)
print(name)
# 通过css选择器获取项目交易量元素
volums = drvier.find_elements_by_css_selector('[class="sc-GTWni eimOQt"]')
print(len(volums))
volum = []
for i in range(len(volums)):
volum.append(volums[i].text)
print(volum)
# 通过css选择器获取项目交易量增长元素,css选择器使用了子元素获取方式
raises = drvier.find_elements_by_css_selector('div.sc-fbNXWD.iFMyOV.rankings-column.rankings-column__nft-volume > div:nth-child(2)')
print(len(raises))
rais = []
for i in range(len(raises)):
rais.append(raises[i].text)
print(rais)
# 将名称、交易量、增长率三类数据汇总后输出
results = []
for i in range(len(name)):
# volum元素中有其它冗余数据,选取3*i个即可
results.append([name[i],volum[3*i],rais[i]])
print('最终结果为:\n',results)
drvier.quit()