3
respostas

Organizar dados

Olá, estou com problemas em organizar os dados que peguei no site, o fato é que eles retornam muito confusos, algumas informações não estão completamente preenchidas no cadastro da pessoa, portanto elas não existem. O problema que quero resolver é 1. Quero que o dataframe Mostre como no site as informações encima como nome, Registro CAU, UF etc. 2 embaixo as informações opcionais, como disse alguns não estão preenchidos, por isso fica muito confuso e não consigo determinar os dados para cada pessoa. Unica forma que consegui de armazenar foi em duas listas, vou deixar o código abaixo.

url ='''https://acheumarquiteto.caubr.gov.br/'''
driver.get(url)
uf = driver.find_element_by_css_selector('[value = "RS"]').click()
btn = driver.find_element_by_css_selector('[name = "pesquisar"]').click()

sleep(15)
lista = []
lista2 = []
condicao = True
while condicao:
    expandir = driver.find_elements_by_css_selector('[data-parent="#accordion"]')
    num = len(expandir)
    for barra in range(num): driver.execute_script("arguments[0].click()", expandir[barra])
    table2 = driver.find_elements_by_class_name('bg_barra_arquiteto')
    table_text2 = {grade.text for grade in table2}
    lista2.append(table_text2)
    table = driver.find_elements_by_class_name("row-fluid")
    table_text = {grade.text for grade in table}
    lista.append(table_text)
    try:
        btn = driver.find_element_by_xpath('//span[@class="fa fa-2x fa-lg fa-angle-right page-profissional"]')
        driver.execute_script("arguments[0].click()", btn)
        found = True
        sleep(10)
    except:
        condicao = False
resultado = pd.DataFrame(lista)
resultado2 = pd.DataFrame(lista2)
3 respostas

Oi Henrique, como vai?

Trabalhar com raspagem de dados quando o site não dispõe de uma API, realmente exige muito "malabarismo" de código. A forma como você conseguiu resolver é válida. Nem sempre fazer a raspagem de dados irá nos gerar um "código bonito", pois depende muito do site, em alguns casos é necessário muita manobra para se chegar ao resultado desejado. Obrigada por compartilhar sua forma de resolução conosco.

Abraços e bons estudos!

Eu tive que entregar desta forma mesmo, mas obrigado por me responder, onde posso aprender mais sobre API?

Nesta aula em específico, o professor Guilherme explica com detalhes sobre o conceito de uma API:

Adianto que com uma API, em um site de vinhos por exemplo, ao invés de fazer a raspagem para saber todos os vinhos da plataforma, você teria uma url específica que já te forneceria toda a lista de vinhos do site.

Aqui na Alura em relação a Python temos dois cursos que abordam a respeito do assunto:

Abraços e bons estudos!