Здравствуйте. Задание для тех, кто подключал список proxy ipv4 с паролем к парсеру на Python. А также знает, как добавить логику, чтобы парсер при возникновении ошибки брал другой proxy из списка, который я ему дал. КОД где что находится я знаю, и вам покажу.
Чтобы оценить код и стоимость работы. И вы напишете, какую-то условную цифру. Понимаю вас. Поэтому удобный вариант. Подключились к моему ПК Anydesk или Teamviewer. Посмотрели на код. Поняли, что можете выполнить задание. Обновили свою ставку под проектом, приму вас в проект. Внесу резерв средств. Снова подключитесь и напишите нужный код. Я протестирую, если работает, принимаю проект. Я скомпилирую сам, соберу билд. И только так! Потому что! Если вы не посмотрите в код, напишите какую-то ставку. То что на выходе будет? Потрачено мое и ваше время впустую и средства? Думаю, ни вам, ни мне, так не нужно. Думаю, это выяснили.
Компилятор у меня PyCharm. Сделал возможность запускать парсер, сам main, в компиляторе. Удобно для тестирования кода.
Про сам код: код написан на Python. Запросы на сервер выполняются через aiohttp, потому что проект является асинхронным, то есть параллельно отправляются запросы на сервер, а не по порядку.
Сборка выполнена через библиотеку PyInstaller. Запускаю .exe программу, и запускается командная строка. А сам парсер открывается в браузере, локально по адресу 127: и так далее.
1. Подключить proxy Ipv4 с паролем. Написать код для подключения proxy. Реализовать так, чтобы proxy брало из моего config.yaml и само собой написало в самом config.yaml. Должно быть поле proxy. Потом там должен быть список моих proxy: в таком порядке.
Все прокси будут идти в столбик. У каждого прокси свой ip:port:password.
При запуске программы пусть берет любой proxy из списка. Это можно прописать в файл main.py. Чтобы при старте программы брался прокси. Обязательно прописываем код, если возникает ошибка при подключении к proxy, а такое всегда может быть, то выбрать другой из списка.
Теперь самое важное! При сборе результатов с гугла. Возникает ошибка. Через некоторое время прилетает капча. Лимиты рандомные прописаны. Мне помогает смена ip, делал это вручную. Здесь есть прописанный код сделать повторное подключение через 15-20 секунд. И тут нужно дописать. Во время паузы, взять другой прокси, который в списке в файле config.yaml. Если снова ошибка. Снова взять другой. Только не какой-нибудь, не рандомно, а по очереди. Брал 2 proxy, теперь возьми 3 proxy. Тестировал вручную, пока пауза менял ip, и тогда гугл забирал свою капчу, и парсер дальше работал. НА ЭКРАНЕ КОД. Пауза и задержка. А также прописанный стандартный звук. Звуки нужно будет заменить на мои. Об этом в пункте 2.
2. Прописать код для звука. Сейчас там звуки стандартные прописаны. Какие автоматически генерируются. Хочу, чтобы вы заменили код. На код, в котором будет указано, чтобы брало звуки из config.yaml. Другими словами при различных действиях программы указываем путь к config.yaml.
А я уже сам буду в Config указывать адрес размещения звуков. Только покажете для примера, как там адрес правильно писать.
В каких моментах и где вставить эти звуки, я в коде покажу. Но прописываем для каждого действия программы свои значения, звук будет разный. Ну типа в config будет.
Поле Sound. И в нем будет. Список 5 звуков. Старт парсинга поиска. Конец парсинга поиска. Начат парсинг сайтов. Ошибка 429. Там звук будет, вставим. Завершение парсинга сайтов. Условия для примера, я ниже прописал.
google_search_start "диск:C/папка/1-звук.mp3"
google_search_end "диск:C/папка/2-звук.mp3"
И так далее. 5 звуков.
3. По умолчанию. Сделать 2 активные кнопки. Чтобы я их не включал каждый раз. А сами уже были включены. Тут понятно и просто.
Сделать, чтобы после завершения сбора результатов. Автоматически нажималась кнопка парсинга. Потому что сейчас я на нее каждый раз нажимаю. Тут тоже ничего тяжелого. Только вывести включение и выключение этого действия в config.yaml
Типа назовем поле. Google_Search_And_Parsing: "1" #1 - активирует автоматическое действие. 0 - отключит это действие.
Ну типа если я сам захожу нажимать на эту кнопку как и раньше, то чтобы я не заходил каждый раз в код. А заходил только в CONFIG. И там включал и выключал.