En este repositorio se encuentra el contenido de nuestro software de Web Scrapping, con el cual podreís escrapear cualquier sito web que siga el protocolo "htpps".
- Motivación
- Tecnologías usadas
- Funcionalidades
- Instalación
- Guia de Uso
- Contribución
- Colaboradores
- Documentación
- Licencia
Este proyecto sobre Web Scrapping ha sido fruto del trabajo del primer año de Formación Profesional de Desarrollo Web. Gracias a la autonomía y participación de sus colaboradores y a la estimulación del reto de sus objetivos.
- Python 3
- CSS3
- HTML5
- Mongo DB
- Markdown
- os
- requests
- tkinter
- MongoClient
- dnspython
- Escrapea páginas "https"
- Almacena la información en una base de datos
- No se requiere registro o inicio de sesión
- Dispone de GUI
- Actualización automática de la base de datos
- Actualizaciones automáticas
- Servicio de atención al cliente
-
Primero de todo crearemos un directorio y a continuación nos situamos en él desde nuestra terminal o consola.
-
Copiamos la url que proporcionamos a continuación y nos aseguraremos de clonar el repositorio en el directorio que acabamos de crear.
-
Para clonar el repositorio en el directorio, asegurándonos que nos encontramos en el interior del repositorio deseado, ejecutamos el siguiente comando:
git clone https://github.com/AntoniPizarro/proyecto_dual.git
- A continuación podemos proceder con su uso tan solo accediendo al documento y ejecutando el archivo llamado “interface.py”
A continuación explicaremos los conceptos necesarios para poder usar la interfaz gráfica (GUI), la cual nos permitirá ejecutar todas las funcionalidades de nuestro programa.
-
Primero de todo accedemos documento “interface.py” y procedemos a ejecutarlo, haciendo doble clic sobre él o pulsando botón izquierdo y seleccionando la opción “abrir”.
-
A continuación podremos observar que se nos habre la consola, aunque mantendrá la pantalla en negro y al mismo tiempo se nos abrirá otra pestaña conteniendo la GUI de nuestra aplicación.
-
En el borde superior de la GUI podemos identificar tres pestañas diferentes:
- Scrap
- Generar Productos
- Ayuda
Al seleccionar la pestaña Scrap observamos que la apariencia de nuestra GUI cambia. Aparece una casilla en blanco con una etiqueta que pone “url” y también podemos localizar un botón con el nombre “Insertar en la BD”. En la casilla en blanco introduciremos cualquier url de una página web de nuestro sitio web. Después de haber introducido la url y de pulsar el botón, el programa recogerá toda la información de los servicios y los subirá a la base de datos. Llegados a este punto, probablemente el título de la ventana de la GUI nos informe de que el programa no responde, pero es totalmente normal ya que está trabajando en segundo plano. Durante el proceso, en la consola o terminal va apareciendo la información de los servicios en estructura json, y que a su vez nos indica si se guarda en la base de datos o se ha actualizado un documento ya existente.
Al hacer clic sobre esta pestaña podemos ver que aparece un menú desplegable con tres opciones a elegir, las tres opciones que nos muestra son:
- Generar en sitio WEB
- Generar en MongoAtla
- Generar en sitio WEB y MongoAtlas
Las tres opciones nos mostrarán la misma distribución en pantalla pero debemos saber de antemano que no ejecutan los mismo procesos.
Cualquiera de las tres opciones nos creará un archivo que contendrá un servicio, el cual pensamos incluir en nuestra página web, base de datos o ambas, conteniendo las especificaciones que nosotros le hayamos asignado a ese servicio en particular. Disponemos de distintos campos, algunos de ellos requerirán que se rellenen manualmente, seleccionando sobre ellos o escribiendo el contenido que creamos adecuado para el servicio. Tendremos un apartado donde se mostrarán distintas casillas para elegir las características que tiene el servicio que pensamos incluir. A continuación explicaremos el estandarte convencional para rellenar los campos de forma adecuada para la comprensión del cliente y para su correcta visualización:
- Modelo: nombre del vehículo de nuestro servicio.
- Tasa: precio del servicio.
- Marca: filiación del nuevo servicio.
- Color: color del cual está compuesto en su mayoría.
- Gama: grado de calidad.
- Plazas: capacidad de pasajeros del vehículo.
- Texto alternativo imagen: texto con más conveniencia para visualizarse en caso de que el navegador no pueda cargar la imagen.
- url imagen: dirección de la imagen.
- Características: hay 15 casillas que se pueden seleccionar. Se pueden seleccionar hasta 6.
Nos da la opción de crear archivos HTML que contendrán las especificaciones que nosotros le hayamos querido dar a nuestro nuevo servicio. Este archivo se generará en el directorio en el que se encuentran el resto de servicios.
Nos da la opción de crear archivos JSON que contendrán las especificaciones que nosotros le hayamos querido dar a nuestro nuevo servicio. El documento JSON se generará sobre nuestra base de datos en la colección donde tenemos todos los productos de los que hemos recogido la información o tenemos intención de recoger información de la página web.
Es la mezcla de las funcionalidades de las dos pestañas anteriores.
Para contribuir en nuestro proyecto, simplemente deberás seguir los siguientes pasos:
- Clona el repositorio (https://github.com/AntoniPizarro/proyecto_dual.git)
- Crea tu rama "feature" (git checkout -b feature/)
- Haz un commit de tus cambios (git commmit -m "Añadiendo nuevo contenido")
- Haz un push de la rama que has creado (git push origin feature/myBranch)
- Finalmente en el caso de que la aportación sea lo suficientemente valiosa como para poder considerarse una mejora del programa original se creará una “pull request” para poder incluir los cambios en la rama principal del proyecto a la cual cualquier persona puede tener acceso
https://proyectodual.000webhostapp.com/documentaci%C3%B3n/documentaci%C3%B3n.html
MIT License
Copyright (c) 2020 AntoniPizarro and Pau Llinàs
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.