Честно говоря, я не знаю, что вы пытаетесь делать со списком прокси, но я бы прочитал его только один раз, используя for
-l oop
proxies = []
proxy_file = open("proxies.txt")
for line in proxy_file:
parts = line.strip().split(':')
if len(parts) == 4:
ip, port, username, password = parts
proxy = '{}:{}@{}:{}'.format(username, password, ip, port)
proxies.append(proxy)
proxy_file.close()
# --- after reading proxies ---
# ... rest of code ...
, а позже я бы использовал список proxies
без помещения всего кода в другой for
-l oop и без удаления элементов из списка proxies
, но с перемещением элемента в конец списка.
# --- after reading proxies ---
random.shuffle(proxies) # items in random order - it doesn't return new list but it changes original list
for url in all_urls:
# get first on list
PROXY = proxies.pop(0)
# move to the end
proxies.append(PROXY)
requests.get(..., proxy=PROXY)
И вы хотите удалить элементы из list, а затем снова используйте тот же список, тогда вы должны продублировать список.
proxies_temp = proxies.copy()
и использовать этот proxies_temp
# --- after reading proxies ---
# first use
proxies_temp = proxies.copy()
for url in all_urls:
if proxies_temp:
PROXY = random.choice(proxies_temp)
proxies_temp.remove(PROXY)
requests.get(..., proxy=PROXY)
# second use
proxies_temp = proxies.copy()
for url in all_urls:
if proxies_temp:
PROXY = random.choice(proxies_temp)
proxies_temp.remove(PROXY)
requests.get(..., proxy=PROXY)