You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从网页导出指定div内容至DataFrame?

解决动态网页指定div内容提取问题
  • 问题根源:你用urllib请求到的只是静态HTML骨架,而bloks.io这类网站的投票数据是通过JavaScript动态加载的,静态页面里根本没有producer-votes-wrapper的实际内容,所以拿到的都是无用文本。

  • 方案一:用浏览器自动化工具(推荐Selenium)
    先安装依赖包:

    pip install selenium
    

    同时需要下载对应浏览器的驱动(比如ChromeDriver,需和浏览器版本匹配),然后运行以下代码:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    url = 'https://bloks.io/account/eoseouldotio#votes'
    
    # 初始化Chrome浏览器(确保ChromeDriver路径已配置到系统环境)
    driver = webdriver.Chrome()
    driver.get(url)
    
    # 等待目标div加载完成,最多等待10秒
    wait = WebDriverWait(driver, 10)
    target_div = wait.until(EC.presence_of_element_located((By.ID, 'producer-votes-wrapper')))
    
    # 获取div的完整HTML内容
    div_html = target_div.get_attribute('innerHTML')
    # 若只需要文本内容,用:div_text = target_div.text
    
    print(div_html)
    
    # 关闭浏览器
    driver.quit()
    
  • 方案二:直接调用网站API(更高效)
    打开浏览器开发者工具(F12),切换到Network标签刷新页面,可找到加载投票数据的API接口。直接请求该接口能拿到结构化的JSON数据,无需处理HTML:

    import requests
    
    url = 'https://api.bloks.io/v1/account/eoseouldotio/votes'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
    }
    
    response = requests.get(url, headers=headers)
    votes_data = response.json()
    
    # 遍历处理投票数据
    for item in votes_data.get('votes', []):
        print(f"生产者账号:{item['producer']},投票权重:{item['stake']}")
    

内容的提问来源于stack exchange,提问作者CaptainG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 00:20:34