Executando verificação de segurança...
1

Boa, eu só trocaria o uso direto da chave por um s.get('pesquisar') ,que evita a quebra do código caso não exista a chave, por padrão o valor de retorno é None se não existir.
O mesmo para as chaves dentro do loop:

for site_id, site_info in enumerate(filter(lambda s: s.get('pesquisar'), sites)):
    print(f"id: {site_id} - Abrindo site: {site_info.get('nome']}")
    # etc...

Carregando publicação patrocinada...