Django 크롤링 데이터 모델에 저장하는 방법이 궁긍합니다!
조회수 2076회
/* parse.py*/
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Refrigerator_Sever.settings")
import django
django.setup()
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
from Refrigerator.models import Recipe
def parse_recipe():
list_url = "http://board.miznet.daum.net/gaia/do/cook/recipe/mizr/"
html = requests.get(list_url).text
soup = BeautifulSoup(html, 'html.parser')
menu_list = []
for tag in soup.select("#page_body > div.body_center > form > ul > li"):
a_tag = tag.select('div p a')[0]
name = a_tag.text
detail_url = urljoin(list_url, a_tag['href'])
img_url = tag.select('a img')[0]['src'].strip()
menu_list.append([name, detail_url, img_url])
return menu_list
if __name__ == '__main__':
recipe_data_dict = parse_recipe()
for (t, l, i) in recipe_data_dict.items():
Recipe(image=i, link=l, title=t).save(commit=False)
/* models.py */
class Recipe(models.Model):
image = models.URLField()
link = models.URLField()
title = models.CharField(max_length=500)
def __str__(self):
return self.title
안녕하세요 ! 크롤한 데이터를 Djngo splite 즉 model에 저장을 하려고하는데요
코드에 문제는 없어보이는데 이 부분에서 Recipe 모델에 크롤링 데이터가 저장이 되질 않네요 ㅠㅠ
if __name__ == '__main__':
recipe_data_dict = parse_recipe()
for (t, l, i) in recipe_data_dict.items():
Recipe(image=i, link=l, title=t).save(commit=False)
혹시 방법을 아시는 분이 있다면 답변 기다리겠습니다. 감사합니다!
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력