Итак, что я хочу сделать, так это то, что я хочу создать своего рода монитор для веб-сайта, который регистрирует случайное число.Прежде чем это сделать, он должен запросить сайт, чтобы увидеть, когда он действителен или нет.Когда он активен, он будет генерировать случайные числа 1-100, и я хочу, чтобы он проверял каждые случайные 3-6 секунд, а затем снова печатал число и повторял до тех пор, пока сайт не работает.
Что я пытался сделатьвыглядит следующим образом:
def get_product_feed(url_site):
thread = url_site
password = False #We start by giving a false/true value
while not password: #If it is not True then we do the for loop
available = False
while not available:
try:
checkpass = requests.get(thread, timeout=12) #We requests the site to see if its alive or not
if ('deadsite' in checkpass.url): #If it contains etc deadsite then we enter the while True
while True:
contcheck = requests.get(thread,timeout=12) #We make new requests to see if its dead.
if ('deadsite' in contcheck.url): #if it is, then we sleep 3-7sec and try again
randomtime = random.randint(3, 7)
time.sleep(randomtime)
else: #If its not containig it anymore then we send the bs4 value
available = True
bs4 = soup(contcheck.text, 'lxml')
return bs4
break
else: #If its having either of them then we send instant.
bs4 = soup(contcheck.text, 'lxml')
return bs4
break
except Exception as err:
randomtime = random.randint(1, 2)
time.sleep(randomtime)
continue
def get_info(thread):
while True:
try:
url = thread
resp = requests.get(url, timeout=12) #We requests to the website here
resp.raise_for_status()
json_resp = resp.json() #We grab the json value.
except Exception as err:
randomtime = random.randint(1,3)
time.sleep(randomtime)
continue
metadata = json_resp['number'] #We return the metadata value back to get_identifier
return metadata
def get_identifier(thread):
new = get_info(thread) #We requests the get_info(thread):
try:
thread_number = new
except KeyError:
thread_number = None
identifier = ('{}').format(thread_number) #We return back to script
return identifier
def script():
url_site = 'https://www.randomsitenumbergenerator.com/' #What url we gonna use
old_list = []
while True:
for thread in get_product_feed(url_site): #We loop to see through get_product_feed if its alive or not
if get_identifier(thread) not in old_list: # We then ask get_identifier(thread) for the values and see if its in the old_list or not.
print(get_identifier(thread)
old_list.append(get_identifier(thread)
Я добавил комментарий, чтобы было легче понять, что происходит.
Проблема, с которой я столкнулся сейчас, которую я не могу сделать get_identifier (thread) для запуска, пока сайт не работает, и я хочу, чтобы он продолжал распечатывать, пока сайт не заработает, пока не умрет, и это мой вопрос!Что мне нужно сделать, чтобы это произошло?
Я думал о том, чтобы в конечном итоге добавить темы, может быть, 10 потоков одновременно проверяют, не работает ли сайт, и возвращают значение в печатном виде, но я не уверен, является ли это моим решением.на вопрос.