Вы можете добавить оператор print () перед request.gets (url) и после datalist.append (data.text). По крайней мере, вы можете отслеживать прогресс по URL.
for url in urls:
print("Getting " + url)
data = requests.get(url)
datalist.append(data.text)
print(url + " successfully downloaded")
Однако ваш код записывается в файл только один раз все URL-адреса были загружены. Если программа завершится ошибкой в любой момент, file_complete.txt
не будет создан. Поэтому я предлагаю записать в файл после успешной загрузки любого URL-адреса.
import requests
with open('file.txt', 'r') as f:
urls = f.readlines()
# datalist=[] // No longer needed
for url in urls:
data = requests.get(url)
with open('file_complete.txt', 'a+') as f: #change to mode "a+" to append
f.write(data.text + "\n")
Еще одно улучшение, которое можно сделать - ваш код предполагает, что ВСЕ URL-адреса действительны. Мы можем использовать блок try-except
для обнаружения ошибок.
import requests
with open('file.txt', 'r') as f:
urls = f.readlines()
# datalist=[] // No longer needed
for url in urls:
try:
data = requests.get(url)
except:
printf(url + " failed")
continue #moves on to the next url as nothing to write to file
with open('file_complete.txt', 'a+') as f: #change to mode "a+" to append
f.write(data.text + "\n")