Python
使用 https://etherchain.org API
當我使用 python 3.6 請求https://etherchain.org/api/difficulty時,我得到 HTTPError: Forbidden。有誰知道解決方案?
import json from urllib.request import urlopen from pandas.io.json import json_normalize r_difficulty_eth = urlopen('https://etherchain.org/api/difficulty').read().decode('UTF-8') difficulty_eth_data = json.loads(r_difficulty_eth)
Etherchain 受CloudFlare保護。它試圖阻止對系統的自動請求。這對於 API 來說似乎很愚蠢……無論如何,解決它的方法是讓 Python 在
User-Agent
請求標頭中表現得好像它是一個正常的 Web 瀏覽器。import json import urllib.request request = urllib.request.Request(url='https://etherchain.org/api/difficulty', data=None, headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4' }) r_difficulty_eth = urllib.request.urlopen(request).read().decode('UTF-8') difficulty_eth_data = json.loads(r_difficulty_eth)