Skip to content

Commit 4895a44

Browse files
committed
Add README.md: Get Started; Explicações sobre docker e possiveis error's; Endpoints da API e explicações sobre performance;
1 parent 015db56 commit 4895a44

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

README.md

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,115 @@
1+
## Web Scraping no Diário Oficial da União (Plataforma Imprensa Nacional com dados públicos do governo) e REST API para expor a coleta desses dados.
12

3+
### URL dos Não Detalhados: [https://www.in.gov.br/leiturajornal](https://www.in.gov.br/leiturajornal)
4+
### URL dos Detalhados: [https://www.in.gov.br/en/web/dou/-/ + `urlTitle`](https://www.in.gov.br/en/web/dou/-/)
5+
6+
## Get Started
7+
8+
1. Instale o Docker:
9+
10+
```bash
11+
$ apt install docker
12+
$ apt install docker-compose
13+
```
14+
15+
2. Clone o repositório:
16+
17+
```bash
18+
$ git clone https://github.com/WelBert-dev/web_scraping_and_restAPI_crud_Poder360.git
19+
$ cd ./web_scraping_and_restAPI_crud_Poder360
20+
```
21+
22+
3. Execute a aplicação:
23+
24+
```bash
25+
$ docker-compose up --build
26+
```
27+
28+
## Atualizações na Estrutura do Docker ou Erros de Montagem
29+
30+
Em caso de alterações na implementação que não refletem no Docker ou erros na montagem das camadas, execute os seguintes comandos para limpar o cache do Docker:
31+
32+
```bash
33+
$ sudo rm -r ./data/
34+
$ docker stop $(sudo docker ps -a -q) ; sudo docker system prune -f ; sudo docker rm -vf $(sudo docker ps -aq) ; sudo docker rmi -f $(sudo docker images -aq)
35+
```
36+
37+
**Nota:** Este processo apagará todas as imagens Docker do sistema.
38+
39+
40+
## Endpoints da API:
41+
42+
**Nota:** Sempre utilize `&saveInDBFlag=True`, pois esses enpoints são mais performáticos. Isso ocorre pois após finalizar a raspagem o cliente é redirecionado para o endpoint que faz a consulta para o banco de dados e retorna o json com paginação, desta forma não sobrecarrega a renderização do DOM (se estiver consumindo a API pelo browser).
43+
44+
### Jornais Não Detalhados:
45+
46+
- Todas seções DO1, DO2 e DO3 do dia atual:
47+
```bash
48+
GET http://127.0.0.1:8000/trigger_web_scraping_dou_api/?saveInDBFlag=True
49+
```
50+
51+
- Por seção mencionada, do dia atual:
52+
```bash
53+
GET http://127.0.0.1:8000/trigger_web_scraping_dou_api/?secao=do1&saveInDBFlag=True
54+
GET http://127.0.0.1:8000/trigger_web_scraping_dou_api/?secao=do2&saveInDBFlag=True
55+
GET http://127.0.0.1:8000/trigger_web_scraping_dou_api/?secao=do3&saveInDBFlag=True
56+
```
57+
58+
- Todas seções DO1, DO2 e DO3, da data mencionada:
59+
```bash
60+
GET http://127.0.0.1:8000/trigger_web_scraping_dou_api/?data=12-01-2024&saveInDBFlag=True
61+
```
62+
63+
- Por data e seção mencionados:
64+
```bash
65+
GET http://127.0.0.1:8000/trigger_web_scraping_dou_api/?secao=do1&data=12-01-2024&saveInDBFlag=True
66+
```
67+
68+
- Requisição para o banco dos registros não detalhados:
69+
```bash
70+
http://127.0.0.1:8000/db_dou_api/journaljsonarrayofdouviewset/
71+
```
72+
73+
### Jornais Detalhados:
74+
75+
**Nota:** Obs: Mesmo aplicando lógicas de retentaivas quando falha a requisição no servidor do gov, as vezes menos de 10 elementos vem com valores nullos, mas basta fazer a mesma requisição novamente que preenche + elementos, fique tranquilo pois o sistema não insere duplicatas ou valores NULL!! Vou implementar uma lógica de retentativa mais robusta. Mas já esta usável rsrs.. ;D
76+
77+
**Nota:** Isso ocorre por servidores desativados, timeout, ou falhas no bypass do cloudflare (por conta da camada async adicionada no cfscrape que não é async), implementar lógica de retentativa sem condições de break pode cair em looping eterno.
78+
79+
- Todas seções DO1, DO2 e DO3 do dia atual:
80+
```bash
81+
GET http://127.0.0.1:8000/trigger_web_scraping_dou_api/?detailDOUJournalFlag=True&saveInDBFlag=True
82+
```
83+
84+
- Por seção mencionada, do dia atual:
85+
```bash
86+
GET http://127.0.0.1:8000/trigger_web_scraping_dou_api/?secao=do1&detailDOUJournalFlag=True&saveInDBFlag=True
87+
GET http://127.0.0.1:8000/trigger_web_scraping_dou_api/?secao=do2&detailDOUJournalFlag=True&saveInDBFlag=True
88+
GET http://127.0.0.1:8000/trigger_web_scraping_dou_api/?secao=do3&detailDOUJournalFlag=True&saveInDBFlag=True
89+
```
90+
91+
- Todas seções DO1, DO2 e DO3, da data mencionada:
92+
```bash
93+
GET http://127.0.0.1:8000/trigger_web_scraping_dou_api/?data=12-01-2024&detailDOUJournalFlag=True&saveInDBFlag=true
94+
```
95+
96+
- Por data e seção mencionados:
97+
```bash
98+
GET http://127.0.0.1:8000/trigger_web_scraping_dou_api/?secao=do1&data=12-01-2024&detailDOUJournalFlag=True&saveInDBFlag=True
99+
```
100+
101+
- Requisição para o banco dos registros detalhados:
102+
```bash
103+
http://127.0.0.1:8000/db_dou_api/detailsinglejournalofdouviewset/
104+
```
105+
```
106+
107+
### Detalhes de cada registro (jornal) consulta INDIVIDUAL:
108+
109+
- Detalhando um único registro (jornal) com o field URL TITLE:
110+
111+
```bash
112+
GET http://127.0.0.1:8000/trigger_web_scraping_dou_api/?detailSingleDOUJournalWithUrlTitleField=acordao-cofen-n-103-de-27-de-setembro-de-2022-459835961
113+
```
114+
115+
### **Nota:** Para mais detalhes de implementação, técnicas, bibliotecas e tecnologias, todo o passo a passo do desenvolvimento foi documentado em: [passo_a_passo_de_desenvolvimento.txt](https://github.com/WelBert-dev/web_scraping_and_restAPI_crud_Poder360/blob/main/passo_a_passo_de_desenvolvimento.txt)

0 commit comments

Comments
 (0)