es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Quiero insertar datos en una base de datos MySQL con Django.

Estoy haciendo web scraping y quiero almacenar la información en la base de datos. Tengo la conexión con la base de datos en el archivo ‘configuración’ así:
 
DATABASES= {
   'default': {
       'ENGINE': 'django.db.backends.mysql',
       'NAME': 'nombre de la base de datos',
       'USER': 'root',
       'PASSWORD': 'contraseña',
       'HOST': 'localhost',
       'PORT': 'puerto'
 }
}

 
El web scraping lo tengo en otro archivo, así:
 

from bs4 import BeautifulSoup
import requests

url = "https://www.somepage.com"
result = requests.get(url)
soup = BeautifulSoup(result.text, "html.parser")

find_by_class = soup.find('div', attrs={"class":"body"}).find_all('p')

Quiero almacenar lo que está en find_by_class en la base de datos.
 
También he creado los modelos.
 

from django.db import models

class SomeModel(models.Model):
     description = models.TextField(max_length=1000)
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para almacenar los datos de web scraping en la base de datos, se puede utilizar el ORM (Mapeo Objeto-Relacional) de Django mediante la creación de una instancia del modelo y su guardado.

    Primero, es necesario importar el modelo en el archivo de web scraping:

    from myapp.models import SomeModel
    

    Luego, se puede iterar sobre la lista find_by_class y guardar cada elemento en la base de datos:

    for item in find_by_class:
        instance = SomeModel(description=item.text)
        instance.save()
    

    Esto crea una nueva instancia de SomeModel con el campo description configurado con el texto del elemento item, y lo guarda en la base de datos.

    Asegúrese de reemplazar myapp con el nombre de su aplicación Django que contiene el modelo SomeModel. También debe asegurarse de que la configuración de Django esté correctamente configurada y que la aplicación esté incluida en la lista INSTALLED_APPS.

Comments are closed.