Selenium and BS4 based scraper for www.metrocuadrado.com
| Requerimiento | Version |
|---|---|
| Python | 3.7.7 |
| Pip | 20.1.1 |
| Google Chrome | 93 |
-
Navegar desde la línea de comandos hacia el directorio que contiene el proyecto
cd Desktop/mc_unal
-
Instalar los requerimientos
pip install -r requirements
-
./logs/urls.json(vacio) -
./logs/urls_cleaned.json(vacio) -
./logs/frame.csv- Contenido inicial
Codigo Web,Titulo,Barrio,Barrio Catastral,Precio venta,Precio arriendo,Area construida,Area privada,Estrato,Habitaciones,Parqueaderos,Banos,Antiguedad,Interior,Exterior,Zona,Sector,Long,Lat,Direccion,Url
- Contenido inicial
./ChromeDriverMacguarda el driver necesario para controlar Chrome desde python (windows)./ChromeDriverWinguarda el driver necesario para controlar Chrome desde python (mac)
-
./dependenciesguarda todos los scripts a los cuales el archivomain.pyhace referencia-
./dependencies/geturls.pyparte del código específicamente dedicada aextraer las urls específicas de todas las publicaciones en la página dada -
./dependencies/clean.pyparte del código específicamente dedicada aremover datos duplicados e inservibles que han sido retornados por la anterior parte -
./dependencies/getdetails.pyparte del código específicamente dedicada a retornar los detalles de una publicación específica y añadirlos al archivocsven la carpeta./logs
-
./logsguarda los archivos con datos necesarios para hacer el scraping-
./logs/frame.csvarchivo csv en blanco donde se guardaran todos los datos de las publicaciones. -
./logs/urls.jsonarchivo json que guarda todas las urls a publicaciones específicas -
./logs/urls_cleaned.jsonarchivo json que guarda todos los datos de./logs/urls.jsonsin ningún elemento duplicado.
-
get- crea el archivo
urls.jsonconteniendo todas las urls de la página web que se le da como parámetro a esta función.
*clean - filtra el archivo
urls.jsoncon el fin de remover todos resultados duplicados, esta función creará el archivourls_cleaned.json
- crea el archivo
Scrape- extrae todos los datos de los registros en el archivo
urls_cleaned.json, y los añade al archivocsvframe.csv
- extrae todos los datos de los registros en el archivo
- Extraer la url deseada de www.metrocuadrado.com
- Seleccionar los dos primeros criterios de búsqueda de los diferentes menús
desplegables, escribir el tercer criterio y hacer click en el botón
Buscar - Copiar la
urlen la barra buscadora del navegador
- Seleccionar los dos primeros criterios de búsqueda de los diferentes menús
desplegables, escribir el tercer criterio y hacer click en el botón
- Función
get- Desde el directorio del proyecto ejecutar el siguiente comando:
- Estructura
python main.py get [url_copiada]
- Ejemplo
python main.py get www.metrocuadrado.com/apartamentos-casas/venta/bogota/
- Estructura
- Al finalizar este proceso, se verá reflejada la información en el archivo
./logs/urls.json
- Desde el directorio del proyecto ejecutar el siguiente comando:
- Función
clean- Desde el directorio del proyecto ejecutar el siguiente comando:
python main.py clean
- Al finalizar este proceso, se verá reflejada la información en el archivo
./logs/urls_cleaned.json
- Desde el directorio del proyecto ejecutar el siguiente comando:
- Función
scrape- Desde el directorio del proyecto ejecutar el siguiente comando:
python main.py scrape [true/false]- Los parámetros
true / falsehacen referencia al uso de laAPIde geocodificación de google
- Los parámetros
- Es posible que al iniciar este proceso aparezca siguente error en la
línea de comandos
- Error
Resource blocked, change your internetprotocol or try again later
- Soluciones
- Cambiar el protocolo de internet (IP)
- VPN
- Cambio de red wifi
- Esperar un tiempo e intentar de nuevo
- Cambiar el protocolo de internet (IP)
- Error
- Al finalizar este proceso, se verá reflejada la información en el archivo
./logs/frame.csv
- Desde el directorio del proyecto ejecutar el siguiente comando: