Мне нужен цикл для перезапуска, потому что я ограничен тем, сколько элементов я могу обработать, прежде чем Google заблокирует меня с помощью модуля googletrans.
Я понял, что могу получить около пятидесяти элементов, используя произвольную задержку, пока Google не заблокирует меня, но мне нужно, чтобы он прошел около 850.
Насколько я знаю, нет способа перезапустить цикл, поэтому я попробовал цикл while, но он не видел обновления цикла и завершает работу после обработки первого блока.
Я также произвольно устанавливаю второй интервал между переводами, чтобы цикл работал. он идет от 0 до 50, а затем останавливает петли
мой код
from googletrans import Translator
from random import randint
import datetime
should_restart = True
spanish_subs = get_subs(page)# list of over 850 sentances to be translated
counter_num = 1
translator = Translator()
start_block = 0
end_block = 50
while should_restart:
print('start_block ' + str(start_block))# see where the loop is in the process
print('end_block ' + str(end_block))
if end_block < len(get_subs(page)):
translations = translator.translate(spanish_subs[start_block:end_block], src='es')
for translation in translations:
english_subs.append(translation.text)
print('Loop ' + str(counter_num + 1 ))
time.sleep(random())# pauses between 1 and 10 seconds
if end_block >= len(get_subs(page)):
should_restart = False
with open('englist_translation.txt', 'w') as f:
for item in english_subs:
f.write("%s\n" % item)
print('Finished')
start_block = end_block + 50
end_block = end_block + 50 # date the end block
print(english_subs)# print to console to see what was translated
return english_subs
def random():
random_number = randint(0, 10)
return random_number