BAS - модернизация Proxy Checker'а на http запросах
мануал для новичков и тех «хардскилл профи», что клепают «софт» на заказ с использованием эмуляции
*******************************
Эта статья является продолжением продолжением данной темы. В ней мы модернизируем наш однопоточный чекер прокси и закончим подготовку для следующей статьи. В этой статье не будет множества спойлеров с кодом и картинками, я заранее собрал рабочий экземпляр и просто сделаю обзор функционала. В конце статьи будет прикреплен исходник, где каждое действие подписано, и каждый желающий сможет поковыряться в кишках данного софта. Говорю сразу, это лишь база, а не полноценно законченный проект. Почему проект не закончен? Потому что я перфекционист до мозга костей, и пока проект не представляет из себя мое конечное виденье, он не является завершенным.
Разбивка по темам (ссылки будут обновляться по мере выхода статей)
1.Модернизация
И так, модернизация... Что следовало сделать в первую очередь? Правильно! Многопоток. Добавлен ресурс с типом "число" , где можно указывать нужное нам число потоков. Для реализации многопоточного чека, функция отвечающая за проверку проксей вызывается в несколько потоков. Можно было реализовать еще массой вариантов, но я решил остановиться на этом, так как мы в прошлой статье затрагивали создание отдельных функций, и даже вызывали одну функцию в основном теле скрипта. Очень важным моментом было реализовать многопоточное чтение из файла без повторения строк в потоках, у многих новичков данный момент вызывает ступор и танцы с бубном (по непонятным причинам). Показал, как просто это реализовать с удалением строки после использования. Следом нужно было реализовать автосохранение собранных проксей. Это реализовано через получение пути до рабочего стола и через получение текущей даты, дабы проверенные в разные дни прокси сохранялись по разным файлам на рабочий стол. В прошлой версии, у нас был всего один сайт для получения бесплатного списка прокси. Рабочий метод это круто, но один редко обновляемый сайт это совсем не круто, поэтому теперь их несколько. Заодно, дабы показать примеры API запросов, нашел сайт, где можно получить список проксей по апи, и реализовал гет запросом. С циклом foreach мы уже знакомы и хотелось показать как можно реализовать это через условия + возвращение к одной и той же метке. Также реализован выбор режима работы скрипта через списки, думаю будет полезно поглядеть, как сделать расширенный функционал при помощи выпадающих списков (отдельно можно собрать прокси и отдельно проверить как собранные данным софтом, так и любые другие прокси).
Пара скриншотов интерфейса:
В списке функций специально использовал разные раскладки и символы, дабы показать, как просто можно реализовать выбор функционала сразу для нескольких языков одновременно. Уже на этом этапе данный скрипт выполняет свои задачи, прокси он чекает и сохраняет в отдельный файл на рабочем столе. Но как говорится: "Совершенству нет предела". А это означает, что пора перейти к следующей главе.
2.Что еще можно сделать
Как я сказал уже ранее, идеал недостижим, но к нему нужно стремиться. Поэтому, мы рассмотрим что еще можно добавить для более удобной работы:
- Удаление дублей - очень полезная штука. Списки прокси могут повторяться в разных местах. Чтобы не тратить лишнее время и лишний раз не убивать прокси, можно создать функцию для удаления дублирующихся строк.
- Сортировка прокси по их типу (http/socks). Если собираетесь использовать софт, который очень чувствителен к типу прокси, то данная фича нам пригодится.
- Попробовать реализовать многопоток другим образом. Это не сложно.
- Добавить еще сайты для автоматического сбора. Если захотеть, то можно получать бесплатные прокси практически со всех сайтов, что их предоставляют. Сейчас программа автоматически собирает от 5 до 9 тысяч проксей. Понятное дело что сбор идет не с самых сложных сайтов и большая часть данных прокси мертва (почти все). Но с того же checkerproxy.net можно достать еще немного прокси (пару сотен) . На момент написания, специально зашел и чекнул, с 2500 выложенных прокси, 309 были рабочими. Проверял этим же чекером. Следовательно, если обойти порядка 20 сайтов, то можно нагребсти хороший пул в несколько тысяч рабочих проксей для несложных нужд.
- Сделать сортировку по анонимности. Прозрачные прокси ( не скрывающие ваш реальный IP) - сразу в топку.
- Сделать отдельное поле ввода для отбора прокси по таймауту (сейчас в чекере таймаут 10 секунд на загрузку страницы)
- При компиляции интегрировать планировщик заданий в скрипт (поставить галочку) и тогда, через планировщик можно настроить полноценный автосбор прокси и их последующую проверку ко времени или же при включении компьютера. Как раз, пока делаете себе кофе, прокси будут собраны и проверены.
- Красивые логи, которые так любят все "хардскильщики" баса.
- Любая другая идея пришедшая вам в голову.
3.Результат. Анонс. Исходник.
Результатом можно назвать готовый список прокси получаемый на выходе и знания, полученные в процессе изучения данных статей с исходником. Данный ряд статей был написан для новичков и на мой взгляд, мне удалось затронуть основные аспекты по работе с басом без эмуляции браузера. Сам чекер же нам пригодится в следующей статье, которая будет посвящена получению халявного VPN. Ниже выложу прочеканные прокси на момент написания (22.02.2023 - 07:30).
ССЫЛКА НА ГУГЛ ДРАЙВ: ТЫК
VT НА ВСЯКИЙ СЛУЧАЙ: КЛАЦ
Снова благодарю за внимание и выделенное на прочтение статьи время. Надеюсь, у вас хватило терпения прочитать полностью и до конца.
*******************************