CamaraDosDeputados / dados-abertos

Repositório do serviço de Dados Abertos da Câmara. Consulte as "Issues" para atendimento a dúvidas e sugestões.
http://dadosabertos.camara.leg.br
198 stars 13 forks source link

Request timeout no endpoint deputados/{id}/discursos #354

Open felipelmc opened 4 days ago

felipelmc commented 4 days ago

Caros, estou extraindo os discursos de deputados federais usando a API de dados abertos mas o endpoint de discursos retorna request timeout para todas as minhas requisições. Fiz uma série de testes no "Try out" da página, além de requests via Python, mas o resultado é sempre o mesmo.

Captura de tela 2024-09-16 115806

image

O código que estou usando para fazer a extração dos dados está aqui: https://github.com/felipelmc/PoliSpeechBR/blob/main/extract_speeches.ipynb

EquipeDadosAbertosCD commented 3 days ago

Olá, Felipe!

Acredito que pode ter havido um problema temporário em um proxy intermediário da nossa rede. Não consegui reproduzir o problema, usando os mesmos ou diferentes parâmetros de tempo. Por favor avise se você ainda estiver tendo o problema: caso prefira, pode escrever para dadosabertos.cenin@camara.leg.br , e informe se possível o IP e o user agent usados pela sua aplicação para que consigamos procurar dados nos sistemas de monitoramento da nossa infraestrutura.

Quanto ao código, eu lhe sugeriria incluir um delay de 200ms, com uma chamada a sleep(), entre as requisições. Sem isso, você provavelmente vai receber erros 429 ("too many requests") com frequência. Você também pode economizar requisições se aumentar o número de itens retornados a cada requisição (com itens=50, por exemplo) e, em vez de buscar novas páginas por um loop que verifica se a resposta veio vazia, você pode simplesmente buscar novas páginas enquanto houver uma URL com rel=next na seção links das respostas.

Obrigado pelo interesse no Dados Abertos e grande abraço!

Fabricio Rocha Equipe Dados Abertos - Câmara

felipelmc commented 3 days ago

Muito obrigado pela pronta resposta, Fabricio! Infelizmente continuo tendo o mesmo problema. Vou escrever para o e-mail indicado.

No mais, obrigado pelas sugestões em relação ao código! Não tinha me atentado para essa maneira de buscar novas páginas.

Grande abraço!

paulopha commented 2 days ago

Bom dia Pessoal ! Mesmo problema por aqui.

image

Estou em um processo que busca ingestionar os dados de forma diaria. Nessa situação sei que o erro começou a surgir no dia a partir do dia 30-08.

Conseguem ajudar ?

EquipeDadosAbertosCD commented 2 days ago

Olá, pessoal.

Vocês podem por favor testar se a situação foi normalizada?

Obrigado e abraços!

Fabricio Rocha Equipe Dados Abertos - Câmara

felipelmc commented 2 days ago

Oi, Fabricio! Fiz alguns testes no próprio site e programaticamente e parece estar funcionando perfeitamente. Muito obrigado!

paulopha commented 2 days ago

Boa Tarde Fabricio!

Problema ainda persiste por aqui.

image image

curl -X 'GET' \
  'https://dadosabertos.camara.leg.br/api/v2/deputados/220588/discursos?dataInicio=2024-08-16&ordenarPor=dataHoraInicio&ordem=ASC&itens=50' \
  -H 'accept: application/json'

Consegue auxiliar ?

felipelmc commented 2 days ago

De fato, @paulopha, testei esse id aqui e também não funcionou

EquipeDadosAbertosCD commented 2 days ago

Salve, pessoal.

Estamos detectando que o limite de acessos à base de discursos estão sendo atingidos muito rapidamente. É possível que alguma aplicação esteja bombardeando da API de requisições.

Sugerimos que entre cada requisição seja inserido um atraso de 200ms, para evitar a sobrecarga no servidor e assim permitir que todos os usuários sejam atendidos. Vamos verificar também se podemos aumentar a velocidade de resposta deste endpoint, mas isso não é algo que podemos resolver de imediato.

Enquanto isso, peço desculpas e a compreensão de todos, e agradeço por alertarem sobre o problema.

Fabricio Rocha Equipe Dados Abertos - Câmara

paulopha commented 1 day ago

Bom dia Fabricio.

Como tal falha impossibilida a obtenção de informação, e não sabemos quem são os clientes alem de nos mesmos que podem estar a agredir o endpoint.

Sabe me dizer se existe outra forma, paleativa, de obtenção dos dados em questão ?

EquipeDadosAbertosCD commented 1 day ago

Salve, @paulopha .

Ainda não há. Temos um plano antigo de fornecer os discursos como arquivos TXT referenciados pelos Arquivos do Dados Abertos, mas ainda não conseguimos implementar por diversas razões.

Vamos nos concentrar em resolver o problema da API nesta quinta-feira.

Fabricio Rocha Equipe Dados Abertos - Câmara