Jump to content

Aceder ao Portal das Finanças


Nelson Arruda

Recommended Posts

Estou a tentar que o meu programa entre no portal das finanças usando o NIF como usuário e a senha. Consigo abrir a pagina no browser do Chrome mas os dados de acesso fornecidos através do programa não passam para  os campo da pagina. Ou seja tenho que introduzir novamente o usuário e a senha no portal.

Alguém tem uma ideia para ajudar. 

Link to comment
Share on other sites

Já viste o tipo de request que tens que fazer? Os headers que tens que passar?

É também importante dares um pouco mais de informação, do que estas a usar para fazer o pedido (bibliotecas), se é uma webview, se estás a fazer um crawler/parser ao site...

 

A pergunta é válida, mas sem mais detalhes não dá para ajudar muito, principalmente porque o site das finanças não dispõem de API pública, tudo terá que ser à base de analisar os pedidos do browser e imitar.

 

Feito é melhor que perfeito

Link to comment
Share on other sites

Em 06/12/2023 às 16:27, Nelson Arruda disse:

Estou a tentar que o meu programa entre no portal das finanças usando o NIF como usuário e a senha. Consigo abrir a pagina no browser do Chrome mas os dados de acesso fornecidos através do programa não passam para  os campo da pagina. Ou seja tenho que introduzir novamente o usuário e a senha no portal.

Alguém tem uma ideia para ajudar.

Já experimentou usar a biblioteca Selenium.

Link to comment
Share on other sites

Em 08/12/2023 às 10:44, Nelson Arruda disse:

Já usei a Selenium a request, mas ao executar o código abre o browser na pagina, mas à mesma tenho que escolher o método de entrada, neste caso pelo NIF e depois colocar as credenciais.

Ao utilizar o Selenium tem de usar as ferramentas do seu browser para analisar a pagina da AT, para encontrar os elementos que pretende.

Segue um exemplo que lhe permite abrir a página que precisa

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
navegador=webdriver.Firefox()
import time

time.sleep(1)
navegador.get("https://www.acesso.gov.pt/v2/loginForm?partID=PFAP&path=/geral/dashboard")
time.sleep(3)
navegador.find_element(By.XPATH, '/html/body/div[1]/section/div[1]/div/div/label[2]/span').click()

Depois deste exemplo é só completar através do comando send_keys os campos do nif e da senha.

Tenha em atenção que neste exemplo uso o Xpath do caminho da tab do nif, se existirem alterações na página, este xpath também pode ser alterado, e nessa situação terá de alterar o código com o novo xpath, ou pode selecionar o elemento por nome, pelo id ou pela classe.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.