如何用Python BeautifulSoup获取纯净Dogecoin价格且不影响刷新?
精准提取Dogecoin实时价格方案
你的代码问题在于依赖text="$"的索引定位,既不稳定(页面结构一变就失效),还会带出父元素的多余内容。以下是优化后的实现:
问题根源
原代码通过匹配$文本取第10个结果的父节点,这种方式完全绑定页面的文本顺序,网站只要调整布局(比如新增广告、修改价格展示位置),代码就会出错,且父节点本身包含无关标签或文本。
优化代码
直接定位页面中负责展示价格的专属元素(CoinDesk的价格元素有明确的类标识,以下适配当前页面结构):
from bs4 import BeautifulSoup import requests url = 'https://www.coindesk.com/price/dogecoin/' # 模拟浏览器请求,避免被反爬拦截 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36' } response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') # 定位价格元素(若后续网站更新class,右键检查价格元素替换新类名即可) price_tag = soup.find('span', class_='sc-16r8icm-0 kjciSH') if price_tag: # 提取纯价格文本,自动去除多余空格 dogecoin_price = price_tag.get_text(strip=True) print(dogecoin_price) else: print("价格元素定位失败,请检查页面结构是否更新")
核心优势
- 稳定性:用元素的class属性定位,比文本索引可靠数倍;后续若网站调整,仅需更新class参数即可。
- 实时刷新:每次请求都会拉取最新页面数据,天然支持获取实时价格。
- 防拦截:添加
User-Agent请求头,避免被网站的反爬机制拒绝访问。
内容的提问来源于stack exchange,提问作者user19711133
相关产品推荐
相关产品推荐

