Sim, é possível fazer isso com muita facilidade. O exemplo a seguir mostra isso.
Preparação
Para realizar pedidos web na ferramenta Geo-Zone Tool utilizando Python, é necessário:
- Editor ou ID (Integrated Development Beam) para escrever o script
- Python-python.org
- Solicitações da biblioteca Python
- Biblioteca Python Pandas (opcional)
Para realizar uma solicitação web da ferramenta Geo-Zone Tool, são necessárias informações para a ferramenta Geo-Zone Tool. Utilizando o exemplo da estrutura do URL da consulta, isso é explicado no seguinte artigo:
→
Acesso ao serviço web (API)
Para este exemplo, são utilizadas as seguintes informações, que tem de substituir no script pela sua:
- Idioma: pt (alemão)
- Iniciar sessão: john [email protected]/pt
- linha: 123456ABCD
- Mapa: vento-DIN-EN-1991-1-4 (carga de vento de acordo com o anexo alemão EC1)
- Local: Dlubal, Tiefenbach (sede da Dlubal GmbH)
- Posição: 49.4353975, 12.5894907 (latitude, longitude)
Efetuar pedido web e ler dados
O seguinte script consulta o serviço web da ferramenta de geolocalização e documenta os tempos e os conteúdos necessários.
…
Importar #%%
# Biblioteca para ler a marca de tempo (biblioteca padrão, opcional)
Importar data e hora como dt
# Executar biblioteca através de pedido web
Pedidos de importação
#%% Definir parâmetros
# Ferramenta de geolocalização de serviços web de URL
urlgz = ' https://external-crm.dlubal.com/loadzones/data.aspx'
# Parâmetros para a consulta (substituir pelos seus próprios valores)
parz = {
'idioma': 'pt',
'Iniciar sessão': '[email protected]',
'hash': '123456ABCD',
'mapa': 'vento-DIN-EN-1991-1-4',
'local': 'Dlubal, Tiefenbach, Alemanha',
'elemento': '49.4353975,12.5894907'
}
# Definir hora para o cancelamento do pedido
reto=10 #p
Realiza a consulta #%%
# Carimbo do tempo antes da recuperação
cdt1 = dt.datetime.now ()
# Consulta na Web utilizando pedidos
rgz = query.get(urlgz, params=pargz, tempo limite=reto)
# Carimbo do tempo após recuperação
cdt2 = dt.datetime.now ()
# Duração da consulta em segundos
dur=(cdt2-cdt1).total_seconds()
# Código de estado HTTP do pedido
sgz=rgz.status_code
# Descrição do conteúdo da consulta
hgz=rgz.headers['Tipo de conteúdo']
# Conteúdo do pedido de web como texto
tgz = rgz.text
#%% Saída da consola do pedido web
txt=[]
txt.append(f"Carimbo de tempo: {cdt1}") #Tempo YYYY-MM-DD HH:MM:SS.SSSSSS
txt.append(f"Duração: {dur} s") #Duração da consulta
txt.append(f"Código do estado: {rgz.status_code}")), Código de estado #HTTP (normal: 200)
txt.append(f"Cabeçalho: {hgz}")), #descrição do conteúdo (normal: texto/html; conjunto de caracteres=utf-8)
txt.append(f" Saída de texto do pedido:\n{tgz}") #Saída da ferramenta de geolocalização
imprimir ('\n'.join(txt))
…
Isto leva aos seguintes resultados, por exemplo:
Carimbo do tempo: 2024-08-22 13:24:32.727006
Duração: 2,214527
Código do estado: 200
Cabeçalho: texto/html; conjunto de caracteres=utf-8
Texto do pedido:
Resultado 1, Resultado 2, Zona, Latitude, Longitude, Elevação, Rua, ZIP, Cidade, Norma, Anexo, Nota(s), Aviso legal
22,5 m/s,0,32 kN/m2,1,49,4353975,12,5894907,520,69384765625,Am Zellweg 2,93464,Tiefenbach,EN 1991-1-4,DIN EN 1991-1-4
Módulo adicional: Preparação do conteúdo dos pedidos web
O seguinte script converte o texto obtido a partir do serviço web Geo-Zone Tool numa forma tabular. Além disso, os valores dos resultados são separados das unidades e finalmente guardados como ficheiro CSV e Excel.
…
Importar #%%
# Funções de cadeias de caracteres da biblioteca padrão para importação e exportação
a partir de io importar StringIO
# Biblioteca para o processamento de dados
Importar pandas como pd
#%% Funções
de rsep_val_unit(indf, cnstart='Resultados',):
"''"
Colunas separadas do dataframe de pedido de ferramenta de geolocalização Dlubal com resultados por valor e unidade.
Propriedades
----------
indf pandas.DataFrame
Dados de entrada.
Cnstart: cadeia de caracteres, opcional
Identificador no início do nome da coluna que contém resultados
Deformações
-------
outdf : pandas.DataFrame
Dados de saída.
"''"
tmp2 = indf.loc(axis=1)[indf.columns.str.startswith(cnstart)]
tmp3 = pd.DataFrame ()
para i em tmp2.columns:
tmp3{%>
Isto resulta nos seguintes resultados, por exemplo:
Estrutura de dados original:
Resultado 1, Resultado 2, Zona, Latitude, Longitude, Elevação, Rua, ZIP, Notas de anexo da norma da cidade
0 22,5 m/s 0,32 kN/m2 1 49.435398 12.589491 520.693848 Am Zellweg 2 93464 Tiefenbach EN 1991-1-4 DIN EN 1991-1-4 NaN
Quadros de dados manipulados:
(Resultado 1, valor) (Resultado 1, unidade) (Resultado 2, valor) (Resultado 2, unidade) Zona Latitude Longitude Elevação Rua ZIP Cidade Anexo padrão Nota(s)
0 22,5 m/s 0,32 kN/m2 1 49.435398 12.589491 520.693848 Am Zellweg 2 93464 Tiefenbach EN 1991-1-4 DIN EN 1991-1-4 NaN
Saída de exemplo:
O primeiro resultado tem o valor 22,5. (m/s)