如何通过CoinMarketCap API或页面解析获取加密货币的Twitter、官网及市场信息
如何从CoinMarketCap获取加密货币的Twitter、官网及交易市场信息
我来帮你梳理下怎么从CoinMarketCap拿到加密货币的Twitter账号、官网和交易市场信息,分API调用和网页解析两种方式来讲,都是实操性很强的方法:
一、通过CoinMarketCap官方API获取(推荐)
官方API是最稳定、合规的方式,不过需要先注册获取API密钥(免费版有调用额度限制)。
1. 获取基础信息(Twitter、官网)
使用/v1/cryptocurrency/info端点,你可以传入加密货币的ID或者符号(比如BTC、ETH)来获取官方信息。
举个Python的示例代码:
import requests API_KEY = "你的API密钥" headers = {"X-CMC_PRO_API_KEY": API_KEY} params = {"symbol": "BTC"} response = requests.get("https://pro-api.coinmarketcap.com/v1/cryptocurrency/info", headers=headers, params=params) data = response.json() # 提取官网和Twitter账号 btc_data = data["data"]["BTC"] official_website = btc_data["urls"]["website"][0] if btc_data["urls"]["website"] else None twitter_handle = btc_data["urls"]["twitter"][0] if btc_data["urls"]["twitter"] else None print(f"官网: {official_website}") print(f"Twitter: {twitter_handle}")
返回的JSON里,urls字段下的website和twitter数组会包含对应的链接,直接取第一个元素即可(大部分币种只有一个官方链接)。
2. 获取交易市场信息
使用/v1/cryptocurrency/market-pairs端点,可以拿到该币种在各个交易所的交易对信息:
params = {"symbol": "BTC", "limit": 10} # limit控制返回的交易对数量 response = requests.get("https://pro-api.coinmarketcap.com/v1/cryptocurrency/market-pairs", headers=headers, params=params) market_data = response.json() # 遍历输出交易市场信息 for pair in market_data["data"]: print(f"交易所: {pair['exchange']['name']}, 交易对: {pair['market_pair']}, 价格: {pair['price']}")
这里可以获取到交易所名称、交易对、当前价格等核心交易信息。
二、解析CoinMarketCap详情页面(网页抓取)
如果不想用API,也可以直接解析详情页面的HTML,但要注意CoinMarketCap有反爬机制,且页面结构可能随时变动,稳定性不如API。
以比特币详情页为例,用Python的requests和BeautifulSoup来提取信息:
import requests from bs4 import BeautifulSoup url = "https://coinmarketcap.com/currencies/bitcoin/" headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, "html.parser") # 提取官网链接 website_link = soup.find("a", attrs={"data-link": "website"})["href"] if soup.find("a", attrs={"data-link": "website"}) else None # 提取Twitter账号 twitter_link = soup.find("a", attrs={"data-link": "twitter"})["href"] if soup.find("a", attrs={"data-link": "twitter"}) else None twitter_handle = twitter_link.split("/")[-1] if twitter_link else None print(f"官网: {website_link}") print(f"Twitter账号: @{twitter_handle}")
这里通过定位带有data-link属性的a标签来提取对应的链接,Twitter账号可以从链接的最后一段截取。
注意事项
- 优先使用官方API,避免触发反爬,且数据结构更稳定;
- 免费版API有调用次数限制,超出后需要升级付费版;
- 网页抓取时要设置合理的请求间隔,不要频繁请求,避免被封禁IP。
内容的提问来源于stack exchange,提问作者rocket
相关产品推荐
相关产品推荐

