а можно вообще KV = писать ?? И ещё я не могу поставить тройной апостроф?Ну так ты установи Kivy, прежде чем его использовать, это внешний модуль, его нет в базовой установке Петона.
Пожалуйста помогите очень хочется научиться Python
а можно вообще KV = писать ?? И ещё я не могу поставить тройной апостроф?Ну так ты установи Kivy, прежде чем его использовать, это внешний модуль, его нет в базовой установке Петона.
У тебя ошибка же не с кодом связана, а с установкой. Тройной апостроф просто для многострочного текста.а можно вообще KV = писать ?? И ещё я не могу поставить тройной апостроф?
Пожалуйста помогите очень хочется научиться Python
Есть книги, есть ютюб и всякие сайты с онлайн курсами, типа Stepik, хочется - учись.Пожалуйста помогите очень хочется научиться Python
Помогите в чем проблема строчки "KV = '''" Учусь по книге Разработка кросплотформенных приложений.
pip3 install kivyВыйти и снова войти пробовал? Если так, то наши полномочия все...И ещё я не могу поставить тройной апостроф?
Could not transact with/call contract function, is contract deployed correctly and chain synced
def getTokenBalance(self, contract):
decimals = contract.functions.decimals().call()
balance = contract.functions.balanceOf(self.adress).call()
return balance / 10 ** decimals
def createTokenContract(self, contractAdress):
contractAdress = Web3.toChecksumAddress(contractAdress)
try:
ERC20_ABI = json.loads('''[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"decimals_","type":"uint8"}],"name":"setupDecimals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]''')
contract = self.web3.eth.contract(contractAdress, abi=ERC20_ABI)
self.getTokenBalance(contract)
except Exception as ex:
print(ex)
BEP20_ABI = json.loads('''[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]''')
contract = self.web3.eth.contract(contractAdress, abi=BEP20_ABI)
self.getTokenBalance(contract)
return contract
import requests
header = {'User-Agent': 'Android: Mozilla/5.0 (Linux; Android 5.0; SM-G920A) AppleWebKit (KHTML, like Gecko) Chrome Mobile Safari (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html'}
# Читаем
file = open('file.txt').read().split('\n')
goods = open('good.txt', 'a+')
#Запускаем цикл и перебор данных в файле
for url in file:
r = requests.head("https://" + url, headers=header)
print(r.status_code)
#Заканчиваем запись файла
goods.close()
Нужен простой чекер
import requests
header = {'User-Agent': 'Android: Mozilla/5.0 (Linux; Android 5.0; SM-G920A) AppleWebKit (KHTML, like Gecko) Chrome Mobile Safari (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html'}
with open(file='file.txt', mode='r') as file_in:
list_urls = [x.strip() for x in file_in.readlines()]
with open(file='good.txt', mode='a') as goods:
for url in list_urls:
r = requests.head(url=f'https://{url}', headers=header)
if r.status_code == 200:
goods.write(f'https://{url}\n')
r = requests.head(url=f'http://{url}', headers=header)
if r.status_code == 200:
goods.write(f'http://{url}\n')
Спасибо большое. А может еще подскажешь, как обрабатывать такие вещи:Python:import requests header = {'User-Agent': 'Android: Mozilla/5.0 (Linux; Android 5.0; SM-G920A) AppleWebKit (KHTML, like Gecko) Chrome Mobile Safari (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html'} with open(file='file.txt', mode='r') as file_in: list_urls = [x.strip() for x in file_in.readlines()] with open(file='good.txt', mode='a') as goods: for url in list_urls: r = requests.head(url=f'https://{url}', headers=header) if r.status_code == 200: goods.write(f'https://{url}\n') r = requests.head(url=f'http://{url}', headers=header) if r.status_code == 200: goods.write(f'http://{url}\n')
Спасибо большое. А может еще подскажешь, как обрабатывать такие вещи:
"ConnectionError: ('Connection aborted.', ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None))"?
import requests
header = {'User-Agent': 'Android: Mozilla/5.0 (Linux; Android 5.0; SM-G920A) AppleWebKit (KHTML, like Gecko) Chrome Mobile Safari (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html'}
with open(file='file.txt', mode='r') as file_in:
list_urls = [x.strip() for x in file_in.readlines()]
with open(file='good.txt', mode='a') as goods:
for url in list_urls:
try:
r = requests.head(url=f'https://{url}', headers=header)
except ConnectionError:
print(f'[-] Ошибка при отправке запроса на url: https://{url}. Пропускаем...')
else:
if r.status_code == 200:
goods.write(f'https://{url}\n')
print(f'[ОК] Успешно сохранили url в файл: https://{url}')
try:
r = requests.head(url=f'http://{url}', headers=header)
except ConnectionError:
print(f'[-] Ошибка при отправке запроса на url: http://{url}. Пропускаем...')
else:
if r.status_code == 200:
goods.write(f'http://{url}\n')
print(f'[ОК] Успешно сохранили url в файл: http://{url}')
except NewConnectionError:
#print(f'[-] Попытка установить соединение была безуспешной на url: https://{url}. Пропускаем...')
except MaxRetryError:
print(f'[-] Попытка установить не получен нужный отклик: https://{url}. Пропускаем...')
NewConnectionError, MaxRetryError.
Python:except NewConnectionError: #print(f'[-] Попытка установить соединение была безуспешной на url: https://{url}. Пропускаем...') except MaxRetryError: print(f'[-] Попытка установить не получен нужный отклик: https://{url}. Пропускаем...')
Таким образом обрабатываю эти экцепты, но ругается что NameError: name 'MaxRetryError' is not defined, при этом знаю что во встроенной иерархии исключений они есть. В чем может быть дело?
except ConnectionError:except Exception:было бы очень круто, если бы ты пояснил, почему такЗамени в моем коде в обоих случаях
except ConnectionError:
на
except Exception:
было бы очень круто, если бы ты пояснил, почему так
All built-in, non-system-exiting exceptions are derived from this class. All user-defined exceptions should also be derived from this class.
Спасибо тебе огромное. Осталось для скорости еще threading в цикл врубитьException - класс выше уровнем, чем ConnectionError. И он "ловит в себя" почти все ошибки:
import argparse
import os
import sys
import time
from queue import Queue
from threading import RLock, Thread, active_count
from urllib3 import disable_warnings
try:
import requests
from user_agent import generate_user_agent
except ImportError as err:
print(f'[-] {err}:\n\tcmd> pip install requests user_agent')
sys.exit(input())
LOCK = RLock()
Q_DOMAINS = Queue()
PATH = os.path.dirname(__file__)
RESULTS = os.path.join(PATH, 'RESULTS')
os.makedirs(RESULTS, exist_ok=True)
disable_warnings()
class SomeBullshit:
@staticmethod
def _validate(domain: str) -> list:
return [
f'https://{domain.split("://")[1]}',
f'http://{domain.split("://")[1]}'
] if '://' in domain else [
f'https://{domain}',
f'http://{domain}'
]
def __init__(self, domain):
self.domains: list = SomeBullshit._validate(domain)
def check(self):
headers = {'User-Agent': generate_user_agent()}
for domain in self.domains:
try:
resp = requests.head(
domain,
headers=headers,
verify=False,
timeout=5,
)
if resp.status_code == 200:
return domain
except Exception as err:
pass
def msg(string):
with LOCK:
print(string)
def save_results(filename, data):
with LOCK:
with open(f'{RESULTS}/{filename}', 'a') as f:
f.write(data + '\n')
def read_file(filename):
with open(filename, 'r') as f:
return [
line.rstrip() for line in f
if line.rstrip()
]
def worker():
while not Q_DOMAINS.empty():
domain = Q_DOMAINS.get()
checker = SomeBullshit(domain)
domain = checker.check()
if domain:
msg(f'[+] Good: {domain}')
save_results(f'good.txt', domain)
def get_args():
parser = argparse.ArgumentParser(description='Some bullshit domain checker')
parser.add_argument(
'-T', dest='threads',
default=1, type=int,
help='Threads number. Default: %(default)s'
)
args = parser.parse_args()
return args
def main():
args = get_args()
domains_file = os.path.join(PATH, 'domains.txt')
if not os.path.exists(domains_file):
print(f'[-] File not found: {domains_file}')
sys.exit(input())
for domain in read_file(domains_file):
Q_DOMAINS.put(domain)
for _ in range(args.threads):
t = Thread(
target=worker,
daemon=True,
).start()
try:
while active_count() > 1:
time.sleep(1)
print('[~] All tasks done')
except KeyboardInterrupt:
sys.exit('[~] Exit...')
if __name__ == '__main__':
main()
pip install requests user_agentException ловит ВСЕ ошибки, но если ты знаешь, что там их могут быть несколько например http connection или timeout connection, то смысла нет обрабатывать их все.было бы очень круто, если бы ты пояснил, почему так
except Exception as e:
print(e)
Exception ловит ВСЕ ошибки