Convertendo credenciais de proxy externo em JSON para uso em API
Neste artigo, mostraremos como converter suas listas de proxy externo em arquivos JSON prontos para API . Essa abordagem permite que você salve todas as suas credenciais em um formato JSON conveniente, facilitando a integração com endpoints API .
Antes de começar
- Certifique-se de ter um ambiente Python configurado com os seguintes pacotes instalados:
- json
- re
- Salve o script
json_proxy_list
na pasta desejada
lista_proxy_json
import json
import re
# Insira o caminho do arquivo contendo a lista de credenciais aqui, se houver.
file_path = "C:/Users/.../input_list.txt"
# Ou cole a lista de credenciais aqui. Separadores suportados: vírgula, barra, espaço, nova linha
paste_list = """
host:port:username:password
"""
# Lendo os proxies contidos no caminho especificado, se houver
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
# Necessária ação do usuário: insira o tipo de proxy (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
# Detectar o separador de linha da lista de credenciais
def get_line_separator(proxy_list):
# Detecta os separadores de linha mais comuns
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]
# Manipulando valores double como '\n', verificando combinações de separadores comuns
combined_separators = ['\n,', ',\n', '\n/', '/\n', '\n ', ' \n', ', ', ' ,', '/ ', ' /']
for combo in combined_separators:
if combo in proxy_list:
return combo
return most_likely_separator
# Função principal: O usuário deverá escolher a origem da lista de proxies():
# Seleciona a origem da lista de proxy
print("Select the list source:")
print("(1) from TEXT")
print("(2) from PATH")
choice = input()
# Ações baseadas na origem do script:
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
# Verifica se o proxy é HTTP/SOCKS5
proxy_type = get_proxy_type()
# Separa a lista de credenciais com base no separador detectado
proxy_lines = re.split(r'[\n, /]+', proxy_list_content.strip())
# Adiciona o tipo de proxy a cada linha
proxy_lines = [f"{proxy_type}:{line.strip()}" for line in proxy_lines if line.strip()]
# Criar um objeto JSON para fácil integração com API
proxies_json = {
"proxies": {
"proxy": []
}
}
# Para cada linha de proxy contida na lista de proxy, pegue cada elemento de proxy para atribuí-lo.
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)
# Cria o JSON.dumps e salva no arquivo proxies.json.
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()
Executando o script
- Abra seu terminal e navegue até a pasta que contém o script
- Execute o script
json_proxy_list
- Selecione a fonte da lista de credenciais de proxy que você precisa:
- Na linha 5, cole o caminho do arquivo
.txt
ou - Na linha 8, cole a string de detalhes do proxy
- Na linha 5, cole o caminho do arquivo
- Selecione o tipo de proxy (HTTP/SOCKS5): credenciais de proxy geralmente não incluem um tipo de proxy, então isso anexará corretamente o tipo a todas as linhas de proxy
- Verifique os resultados no arquivo
proxies.json
armazenado na mesma pasta