Author

Topic: Python Soru (Read 159 times)

member
Activity: 122
Merit: 26
December 20, 2018, 03:36:31 AM
#7
teşekkürler cevap için

delay komutunu nasıl ekliyeceğim?

#!/usr/bin/python3

from urllib.request import Request, urlopen
from json import loads
import sys, argparse

class EthBalance:
    def __init__(self, args):
        self.API_TOKEN = "_Your_API_Token"
        self.explorer = "https://api.etherscan.io/api?module=account&action=balancemulti&address="

        parser = argparse.ArgumentParser(description = """
        This script fetch Ethereum addresses balance using etherscan.io API
        """)
        parser.add_argument('-F', '--file', help = "Path of the stored Ethereum addresses", required = True)
        parser.add_argument('-O', '--out', help = "Output file name", required = True)

        arguments = parser.parse_args()
        self.in_file, self.out_file = arguments.file, arguments.out

        self.check()

    def load(self, address = ""):
        try:
            url = self.explorer + address + "&tag=latest&apikey=" + self.API_TOKEN
            request = Request(url, headers= {'User-Agent' :\
             "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36"})
            response = urlopen(request)
            data = loads(response.read().decode("utf8"))

            return data

        except Exception as e:
            print("Error occured during fetching data from etherscan", e)

    def parseInput(self, data_list = []):
        parsed_list, add, final_list = [], "", []
        parsed_list = [data_list[i:i + 20] for i in range(0, len(data_list), 20)]

        for i in parsed_list:
            for j in i:
                if j != "\n":
                    add += j.replace('\n', '') +','
            final_list.append(add[:len(add)-1])
            add = ""

        return final_list

    def check(self):
        try:
            with open(self.in_file, 'r') as input_file:
                d = input_file.readlines()
                parsed_list = self.parseInput(d)
                for multipleAdd in parsed_list:
                    data = self.load(address = multipleAdd)
                    for i in data["result"]:
                        # Trying to print the most accurate float values with 16 numbers after the point
                        print("%s  :  %.16f ETH" %(i["account"], float(i["balance"])/1000000000000000000))
                        with open(self.out_file, 'a') as out_file:
                            out_file.write("%s  :  %.16f ETH" %(i["account"], float(i["balance"])/1000000000000000000))

        except Exception as e:
            print("Error occured during file handling", e)

# test
if __name__ == '__main__':
    app = EthBalance(sys.argv[1:])
hero member
Activity: 714
Merit: 503
www.mesutcandemir.com.tr
December 19, 2018, 11:10:56 AM
#6
Aldığım hata aşağıda

Error occured during fetching data from etherscan ] Bağlanılan uygun olarak belli bir süre içinde yanıt vermediğinden veya kurulan

bağlantı bağlanılan ana bilgisayar yanıt vermediğinden bir bağlantı kurulamadı>
Error occured during file handling 'NoneType' object is not subscriptable


kullandığım kod şu
https://github.com/Chiheb-Nexus/Ethereum-Balance

pythonda   erteleme (delay) diye bir kod ekleyebilirmiyiz...yani sunucu 10 saniye yanıt vermediğinde hata vermeyip 10 saniyede bir tekrar istek göndermek gibi birşey yapılabilirmi?

The Etherscan Ethereum Developer APIs are provided as a community service and without warranty, so please just use what you need and no more. They support both GET/POST requests and a rate limit of 5 requests/sec.

Yazmış etherscan saniyede 5 sorgudan fazla geldiği için sizi limitliyor, Kodlarda erteleme süresi kullanmanız ayrıca anlık isteklerin 5 ten az olmasını sağlamalısınız.
member
Activity: 122
Merit: 26
December 19, 2018, 10:52:16 AM
#5
Aldığım hata aşağıda

Error occured during fetching data from etherscan ] Bağlanılan uygun olarak belli bir süre içinde yanıt vermediğinden veya kurulan

bağlantı bağlanılan ana bilgisayar yanıt vermediğinden bir bağlantı kurulamadı>
Error occured during file handling 'NoneType' object is not subscriptable


kullandığım kod şu
https://github.com/Chiheb-Nexus/Ethereum-Balance

pythonda   erteleme (delay) diye bir kod ekleyebilirmiyiz...yani sunucu 10 saniye yanıt vermediğinde hata vermeyip 10 saniyede bir tekrar istek göndermek gibi birşey yapılabilirmi?
hero member
Activity: 714
Merit: 503
www.mesutcandemir.com.tr
December 19, 2018, 08:50:38 AM
#4
elimdeki txt dosyasında 100.000 satırlık ethereum adres listesi var... bunu python ile saatır satır etherscan.io üzerinden nasıl bakiye kontrolu yaptırıp başka bir txt dosyasında çıktısını alabilirim...
yardım için teşekkür şimdiden...

Bağlantı sorunu dediğiniz kullandığız web sitesiyle etherscan.io arasında ki api bağlantısının kopmasıyla alakalı
Başka sunucuda deneyerek sorunu çözebilirsiniz
full member
Activity: 840
Merit: 103
December 17, 2018, 03:11:52 AM
#3
linuxta split diye bir komut var onu kullan dosyayi satir olarak parcalara bol sonra birlestirirsin.
member
Activity: 122
Merit: 26
December 13, 2018, 01:20:49 AM
#2
https://github.com/Chiheb-Nexus/Ethereum-Balance

linkteki kodla çözüldü ama değişken bir şekilde 1000 ile 10000 tarama arasında bağlantı sorunu diyor ve kontrolu durduruyor bunu düzeltebilirmiyiz acaba ?
member
Activity: 122
Merit: 26
December 12, 2018, 04:16:26 AM
#1
elimdeki txt dosyasında 100.000 satırlık ethereum adres listesi var... bunu python ile saatır satır etherscan.io üzerinden nasıl bakiye kontrolu yaptırıp başka bir txt dosyasında çıktısını alabilirim...
yardım için teşekkür şimdiden...
Jump to: