Я хочу вставить данные в базу данных 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)