我正在尝试制作一个从coinbase中提取比特币价格的脚本。
import urllib2
from bs4 import BeautifulSoup
response = urllib2.urlopen('https://www.coinbase.com/charts?locale=en-US/')
soup = BeautifulSoup(response, "html.parser")
print soup.title.string
当我运行它时,我得到的唯一输出是:
Bitcoin, Ethereum, and Litecoin Price Charts - Coinbase
我如何得到它以便我可以提取数字?
另外 - 如果我想让程序继续运行,那么它会更新价格 - 我该怎么做?
答案 0 :(得分:0)
这个号码是通过javascript ajax加载的......所以这种技术根本不会起作用......
改为尝试这个(访问他们正在加载实际价格的相同网址)
import requests
value = float(requests.get("https://api.coinbase.com/v2/prices/USD/spot?").json()['data'][0]['amount'])
答案 1 :(得分:0)
该号码本身并未进入该页面。如果你检查html,你可以看到自己。该页面使用Ajax请求请求数据。
如果您在浏览器的网络开发控制台中打开网络标签,则会看到它定期调用此网址:https://api.coinbase.com/v2/prices/USD/spot?
因此,您可以直接加载该URL,它会返回一个json字符串,您可以解码该字符串以获取您要查找的值:
import requests
url = 'https://api.coinbase.com/v2/prices/USD/spot?'
req = requests.get(url)
data = req.json()
print(data['data'][0]['amount'])
也就是说,如果您只是简单地使用他们的API,他们可能会很高兴。检查他们是否有可以使用的官方开发人员API。