Я хочу вставить данные в базу данных MySQL с помощью Django

Я занимаюсь веб-скрейпингом и хочу сохранить информацию в базе данных. У меня есть соединение с базой данных в файле 'settings' следующим образом:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dbname',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': 'port'
    }
}

Вебскраппинг у меня находится в другом файле, вот так:

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')

Я хочу хранить то, что находится в find_by_class в базе данных.

Также я создал модели.

from django.db import models

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

Предполагаю, что вы сделали миграции в базе данных (если нет, то в корневой папке проекта выполните python manage.py makemigrations, а затем python manage.py migrate).

Теперь вам нужно использовать следующий сниппет:

from bs4 import BeautifulSoup
import requests
from .models import SomeModel

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') 
for each in find_by_class:
    SomeModel.objects.create(description=each.text)
Вернуться на верх