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

Python3使用bs4提取<div>标签内字符串的问题求助

问题排查
  • 你写的imn55z-0 hCqbVS price是前端打包生成的动态类名,其中的随机字符串段会随页面版本迭代变化,写死这类选择器很容易定位失败
  • 定位到div元素后你没有提取标签内的文本,直接打印元素对象拿不到纯价格内容
  • 不带请求头直接发起请求会被CoinMarketCap反爬拦截,返回的页面结构和正常浏览器访问的不一致
  • 价格字符串带$符号、千位分隔符逗号,且SHIB这类币种单价是小数,直接转int会丢失精度得到0,无法用于后续计算
修正代码
from bs4 import BeautifulSoup
import requests

# 模拟浏览器请求头,绕过基础反爬
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
url = 'https://coinmarketcap.com/currencies/shiba-inu/'
resp = requests.get(url, headers=headers)
soup = BeautifulSoup(resp.content, 'html.parser')

# 用固定的priceValue类定位价格标签,稳定性更高
price_el = soup.find("div", class_="priceValue")
# 清洗文本:去掉首尾空格、美元符号、千分位逗号,转成浮点数
current_price = float(price_el.text.strip().replace("$", "").replace(",", ""))

print(current_price)
# 后续计算持仓总价值直接用 持仓数量 * current_price 即可
补充说明
  • 如果需要整数结果,建议完成所有金额计算后再做取整操作,不要直接转换原始价格
  • 后续定位元素时避开带随机哈希串的类名,选择固定的属性、id或者语义化类名,降低代码失效概率
  • 爬取时建议添加3-5秒的请求间隔,避免高频访问被站点封禁IP

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:39:20