Популярные темы: Multilogin X, Multilogin 6,
Преобразование списков прокси в файлы JSON для API
Содержание
В этой статье вы узнаете, как преобразовать ваши списки прокси в файлы JSON, готовые к использованию с API. Так вы сможете сохранять все учётные данные в удобном формате JSON, упрощая интеграцию с API эндпоинтами.
Начало работы
- Убедитесь, что у вас настроена среда Python со следующими установленными пакетами:
- json
- re
- Сохраните скрипт
json_proxy_list
в нужной вам папке.
json_proxy_list
import json
import re
# Input the proxy list path here, if any.
file_path = "C:/Users/.../input_list.txt"
# Paste the proxy list here. Supported separators: comma, bar, space, newline
paste_list = """
host:port:username:password
"""
# Reading the proxies from the file path, if any
def read_proxies_from_file(file_path):
try:
with open(file_path, 'r') as file:
return file.read()
except Exception as e:
print("Error reading file - please check your file PATH.")
print(f'Exception found: {e}')
return
# User input needed: proxy type (HTTP/SOCKS5)
def get_proxy_type():
print("Enter the proxy type:")
print("(1) HTTP")
print("(2) HTTPS")
print("(3) SOCKS5")
choose_type = input()
if choose_type == "1":
proxy_type = "http"
elif choose_type == "2":
proxy_type = "https"
elif choose_type == "3":
proxy_type = "socks5"
else:
print("Invalid proxy type. Enter a valid option number.")
return get_proxy_type()
return proxy_type
# Detect line separator from block of credentials
def get_line_separator(proxy_list):
# Detect the most common line separators
separators = ['\n', ',', '/', ' ']
separator_counts = {sep: proxy_list.count(sep) for sep in separators}
sorted_separators = sorted(separator_counts, key=separator_counts.get, reverse=True)
most_likely_separator = sorted_separators[0]
# Handle double values such as '\n,' by checking combinations of common separators
combined_separators = ['\n,', ',\n', '\n/', '/\n', '\n ', ' \n', ', ', ' ,', '/ ', ' /']
for combo in combined_separators:
if combo in proxy_list:
return combo
return most_likely_separator
# Main Function - Inputs user for preferred proxy list source
def main():
# Select proxy list source
print("Select the list source:")
print("(1) from TEXT")
print("(2) from PATH")
choice = input()
# Take action based on the script source
if choice == '2':
proxy_list_content = read_proxies_from_file(file_path)
if proxy_list_content is None:
return
else:
proxy_list_content = paste_list
# Check if HTTP/SOCKS5
proxy_type = get_proxy_type()
# Split the proxy list based on detected separator
proxy_lines = re.split(r'[\n, /]+', proxy_list_content.strip())
# Add the proxy type to each line
proxy_lines = [f"{proxy_type}:{line.strip()}" for line in proxy_lines if line.strip()]
# Create JSON object that is similar to API output for easy future integration
proxies_json = {
"proxies": {
"proxy": []
}
}
# For each proxy line contained in the proxy list, take each proxy element to assign it.
for line in proxy_lines:
parts = line.split(':')
if len(parts) != 5:
print(f"Skipping invalid line: {line}. Please check your proxy credentials file.")
continue
proxy = {
"type": parts[0],
"host": parts[1],
"port": parts[2],
"username": parts[3],
"password": parts[4]
}
proxies_json["proxies"]["proxy"].append(proxy)
# Create the JSON.dumps, save it on proxies.json file.
with open('proxies.json', 'w') as json_file:
json.dump(proxies_json, json_file, indent=2)
print("File proxies.json was written succesfully.")
if __name__ == "__main__":
main()
Запуск скрипта
- Откройте терминал и перейдите в папку, содержащую скрипт.
- Запустите скрипт
json_proxy_list
.
- Выберите нужный источник списка данных прокси:
- В строке 5 вставьте путь к файлу
.txt
или - В строке 8 вставьте строку данных прокси
- В строке 5 вставьте путь к файлу
- Выберите тип прокси: сторонние данные прокси обычно не включают эту информацию.
- Проверьте результаты в файле
proxies.json
в той же папке.