Uma sugestão para deixar mais performático seria substituir os 3 .maps por um .reduce e desestruturar os dados no retorno do reduce.

Assim o array seria iterado uma única vez e não três.

Estou no celular, a idéia seria algo como:

const { ids, nomes, senhas } = pagina1.reduce((data, item) => {
  // passa os dados pra dentro de cada propriedade do data
}, {
  ids: [],
  nomes: [],
  senhas: []
})

Boa observação. Usei vários maps ali apenas para simplificar os exemplos mas com o reduce realmente da uma boa enxugada no código. Valeu!

Boa, não tinha pensado nisso, procurava uma solução e eu estava usando Object.Values para conseguir.