def main2(event): #запуск функции с передачей переменной event (для работы виджетов) page_count = get_page_count(get_html(BASE_URL)) #переменную присваиваем функции пересчета страниц, где сначала выполняется другая функция, получающая http-адрес от переменной BASE_URL lbl3.config(text='Всего найдено страниц: ' + str(page_count)) #меняем текстовую часть переменной lbl3 на количество найденных страниц page = 1 #переменная для счетчика projects = [] #массив для хранения всей искомой информации while page_count != page: #цикл выполняется, пока переменная page не равна количеству найденных страниц proxy = Proxy() #присваиваем классу, где зададим нужные параметры proxy = proxy.get_proxy() #получать proxy-адрес lbl4.update() #обновляем виджет lbl4.config(text='Прокси: ' + proxy) #и приравниваем к полученному прокси global proxy1 #глобальная переменная proxy1 = proxy #приравниваем переменные для дальнейшей проверки их совпадения try: #обработчик исключительных ситуаций for i in range(1, 10): #этот цикл будет прогонять полученный прокси определенное количество раз (range - определяет, сколько раз будем его использовать для входа на сайт). Можно и каждый раз брать новый прокси, но это существенно замедлит скорость работы программы page += 1 #счетчик необходим для подсчета выполненной работы lbl2.update() #обновляем виджет lbl2.config(text='Парсинг %d%%' % (page / page_count * 100)) #меняет процент сделанной работы от 100% r = requests.get(BASE_URL + '?page=%d' % page, proxies={'https': proxy1}) #получаем данные со страницы сайта parsing = BeautifulSoup(r.content, "lxml") #получаем html-код по средству BeautifulSoup (чтобы позже использовать поисковые возможности этого модуля) для дальнейшей передачи переменной в функцию projects.extend(parse(BASE_URL + '?page=%d' % page, parsing)) #получаем данные из функции parse (передавая адрес страницы и html-код) и добавляем их в массив save(projects, 'proj.csv') #вызываем функцию сохранения данных в csv, передаем туда массив projects except requests.exceptions.ProxyError as e: #неудача при подключеннии с прокси print(e) continue except requests.exceptions.ConnectionErroras as e: # не удалось сформировать запрос print(e) continue except requests.exceptions.ChunkedEncodingError as e: #сделана попытка доступа к сокету методом, запрещенным правами доступа print(e) continue