Atualmente, tenho recebido muitas ligações indesejadas no meu telefone, e acredito que isso também possa acontecer com vocês.
Infelizmente, não se trata de apenas um número. Ao bloquear um, outro número diferente aparece, frequentemente com um bot realizando a ligação.
O Python pode ajudar a obter algumas informações sobre esses números por meio da biblioteca phonenumbers.
Com ela, é possível analisar os dados dos números que já foram identificados como spam e, com base nisso, criar critérios para identificar futuros números suspeitos.
Se você se interessa por Inteligência Artificial, pode ir além: desenvolver um modelo de machine learning capaz de determinar se um número é spam. Para isso, o processo de treinamento envolve analisar as características de números de telefone em uma planilha (nos formatos CSV ou XLSX), onde cada número está rotulado como spam ou não. Ao final, o modelo poderá prever com certa precisão a probabilidade de um número ser spam.
A Inteligência Artificial é excelente para identificar padrões; use-a com sabedoria.
Observação: Os números de telefone abaixo são fictícios e foram incluídos apenas como exemplo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import phonenumbers from phonenumbers import carrier, geocoder, number_type, timezone def extrair_informacoes(numero): try: phone = phonenumbers.parse(numero, None) operadora = str(carrier.name_for_number(phone,'pt-BR')) return { "valido": phonenumbers.is_valid_number(phone), # Se o número é válido "possivel": phonenumbers.is_possible_number(phone), # Se é um número plausível "regiao": geocoder.description_for_number(phone, "pt-BR"), # Nome da região "operadora": operadora if operadora else "Não disponível", # Nome da operadora "tipo": number_type(phone), # Tipo móvel ou fixo "formato_internacional": phonenumbers.format_number(phone, phonenumbers.PhoneNumberFormat.INTERNATIONAL), "formato_nacional": phonenumbers.format_number(phone, phonenumbers.PhoneNumberFormat.NATIONAL), "time zone": timezone.time_zones_for_number(phone) } except Exception as e: return {"erro": str(e)} telefones = ["+5568999999999", "+5521999999999", "+5511999999999"] for telefone in telefones: informacoes = extrair_informacoes(telefone) print(informacoes) """ Resultado: {'valido': True, 'possivel': True, 'regiao': 'Acre', 'operadora': 'Vivo', 'tipo': 1, 'formato_internacional': '+55 68 99999-9999', 'formato_nacional': '(68) 99999-9999', 'time zone': ('America/Rio_Branco',)} {'valido': True, 'possivel': True, 'regiao': 'Rio de Janeiro', 'operadora': 'Vivo', 'tipo': 1, 'formato_internacional': '+55 21 99999-9999', 'formato_nacional': '(21) 99999-9999', 'time zone': ('America/Sao_Paulo',)} {'valido': True, 'possivel': True, 'regiao': 'São Paulo', 'operadora': 'Vivo', 'tipo': 1, 'formato_internacional': '+55 11 99999-9999', 'formato_nacional': '(11) 99999-9999', 'time zone': ('America/Sao_Paulo',)} """ |