У меня есть функция, которая читает из файла сайтов и запрашивает целевую страницу. Затем я обрабатываю целевую страницу для получения информации, но я делаю много проверок, и ее линейный запуск занимает очень много времени. Ниже приведен пример того, что у меня сейчас есть.
def main()
err_file = open("error.txt", "w+")
res_file = open("results.txt", "w+")
with open("a_file.txt", "r") as sites:
for url in sites:
try:
info = requests(url)
except Exception as exc:
err.file.write(exc)
else:
basic = get_basic(info)
res_file.write(check_more(info, basic)) # How can I make this faster?
def check_more(info, basic):
'''
Many regexes are done and results are written to a string variable
'''
final_result = basic + result_of_searching
return final_result
Функция check_more () занимает много времени, и это время обработки увеличивается с увеличением размера веб-страницы. Как я могу запустить check_more () в фоновом режиме, так как я продолжаю обрабатывать больше URL и записывать результаты check_more () в файл?
Я пробовал многопроцессорную очередь и concurrent.futures, но мне не повезло заставить его работать со структурой, которая у меня есть в настоящее время.
Я запускаю это на ВМ, поэтому сокеты не являются поточно-ориентированными, поэтому я выполняю запросы индивидуально. get_basic () выполняет вызов сокета, чтобы получить IP-адрес URL.