Получение данных из Etherscan: подробное руководство с примерами кода

Etherscan – популярный обозреватель блокчейнов Ethereum. Он позволяет пользователям взаимодействовать с блокчейном Ethereum и получать доступ к различным данным, таким как детали транзакций, информация о контрактах и ​​балансы токенов. В этой статье мы рассмотрим различные методы получения данных из Etherscan с использованием интеграции API и методов очистки веб-страниц. Мы предоставим примеры кода для иллюстрации каждого метода.

Метод 1: Etherscan API
Etherscan предоставляет мощный API, который позволяет разработчикам программно получать доступ к данным блокчейна. Чтобы использовать API, вам понадобится ключ API, который вы можете получить, создав учетную запись на сайте Etherscan. Вот пример получения последнего номера блока с помощью Python:

import requests
api_key = 'YOUR_API_KEY'
url = f'https://api.etherscan.io/api?module=proxy&action=eth_blockNumber&apikey={api_key}'
response = requests.get(url)
data = response.json()
latest_block_number = int(data['result'], 16)
print(f'Latest block number: {latest_block_number}')

Метод 2: парсинг веб-страниц с помощью BeautifulSoup
Если нужные вам данные недоступны через API Etherscan, вы можете прибегнуть к парсингу веб-страниц. BeautifulSoup — популярная библиотека Python для парсинга веб-страниц. Вот пример очистки списка последних транзакций для данного адреса Ethereum:

import requests
from bs4 import BeautifulSoup
address = '0x123abc'
url = f'https://etherscan.io/address/{address}'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
transactions = soup.find_all('tr', class_='table-success')
for transaction in transactions:
    tx_hash = transaction.find('a', class_='hash-tag').text
    value = transaction.find_all('td')[6].text
    print(f'Transaction Hash: {tx_hash}, Value: {value}')

Метод 3: Etherscan GraphQL API
Etherscan также предоставляет GraphQL API, который позволяет выполнять более гибкие запросы. Вот пример получения баланса токена для данного адреса Ethereum с использованием API Etherscan GraphQL и библиотеки Python requests:

import requests
address = '0x123abc'
query = '''
    query {
        account(address: "%s") {
            tokens {
                tokenInfo {
                    symbol
                }
                balance
            }
        }
    }
'''
url = 'https://api.etherscan.io/graphql'
response = requests.post(url, json={'query': query % address})
data = response.json()
for token in data['data']['account']['tokens']:
    symbol = token['tokenInfo']['symbol']
    balance = token['balance']
    print(f'Token: {symbol}, Balance: {balance}')

В этой статье мы рассмотрели различные методы получения данных из Etherscan. Мы рассмотрели использование API Etherscan, очистку веб-страниц с помощью BeautifulSoup и API Etherscan GraphQL. В зависимости от вашего конкретного случая использования вы можете выбрать наиболее подходящий метод. Используя эти методы, вы можете извлекать ценные данные из блокчейна Ethereum и создавать мощные приложения.