如何使用Beautiful Soup获取币安网站BTC-USDT实时变动的交易数据
问题原因
币安BTC-USDT交易页面的实时数据是客户端JavaScript动态渲染生成的,你用requests.get请求只能拿到服务器返回的初始静态HTML,其中的交易数据、页面标题都是初始占位值,不会随实时交易更新,你看到的偶尔变动只是静态页缓存刷新导致的,并非实时数据。
解决办法
方案1:调用币安公开行情接口(最推荐)
币安官方提供了免费的现货行情接口,不需要爬取网页,返回结构化JSON数据,稳定性高、请求速度快,也不容易触发反爬规则,示例代码如下:
import requests import time while True: res = requests.get("https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT") data = res.json() print(f"BTC-USDT 当前价格:{data['price']}") time.sleep(5)
方案2:使用支持JS渲染的爬虫工具
如果你确实需要提取页面上的其他动态渲染内容,可以使用Selenium、Playwright这类模拟浏览器运行的工具,等页面JS执行完成后再提取数据,以Selenium为例的示例代码如下:
from selenium import webdriver from selenium.webdriver.common.by import By import time # 需提前安装对应浏览器版本的ChromeDriver driver = webdriver.Chrome() driver.get("https://www.binance.com/tr/trade/BTC_USDT") try: while True: paper = driver.find_element(By.CSS_SELECTOR, 'title[data-shuvi-head="true"]').get_attribute('outerHTML') print(paper) time.sleep(5) finally: driver.quit()
注意事项
- 控制请求频率,避免频繁访问触发平台的反爬限制
- 数据抓取需遵守平台的使用条款与robots协议
内容的提问来源于stack exchange,提问作者CSS
相关产品推荐
相关产品推荐

