3
respostas

A rotina de Scraping não funciona. Site gerado no lado cliente?

Olá Professor Rodrigo, Estou tentando aplicar as técnicas do curso no site https://www.imobiliariacardinali.com.br/mapa/sao-carlos-sp-brasil/comprar/terreno e coletar informações sobre valor e área do terreno sendo vendido. Não estou tendo sucesso com o findAll():

for item in soup.findAll('div', {"class" : "sale"}):
  print(item.get('title'))

me retorna "none". Será que esse é o caso em que a página é criada no lado cliente? Obrigado

3 respostas

Oii Marcos, como você está?

Sinto muito pela demora em obter um retorno.

O link que você deixou como referência no tópico está retornando página não encontrada, teria um novo link para que eu possa analisar e te ajudar quanto a isso?

Fico no aguardo.

Oi Nadia, Olha só! Parece que o site mudou desde que eu postei. O link pretendia levar à busca por compra de terreno na cidade de São Carlos. A página inicial da imobiliária:

https://www.cardinali.com.br/

Elementos de filtro na busca:

comprar>São Carlos>(terreno)>padrão

Eu quero fazer isso, DataFrame que contenha os valores dos terrenos nesta busca. Teria que usar o Selenium?

Fala Marcos,

Não estou vendo problemas para acessar este site com o conteúdo que abordamos em nosso curso. Logicamente é possível utilizar outros tipos de abordagem para capturar os dados, mas com o código simples abaixo já conseguimos acessar as informações:

from urllib.request import urlopen
from bs4 import BeautifulSoup

url = 'https://www.cardinali.com.br/pesquisa-de-imoveis/?locacao_venda=V&id_cidade%5B%5D=190&finalidade=0&dormitorio=0&garagem=0&vmi=&vma='

response = urlopen(url)
html = response.read()
soup = BeautifulSoup(html, 'html.parser')

for item in soup.find_all('div', {'class': 'price'}):
    print(item.find('span').get_text())

for item in soup.find_all('div', {'class': 'info'}):
    print(item.find('ul').li.get_text())

O código acima precisa de alguns ajustes, mas isso eu deixo como treinamento para você.

Espero que ajude