๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[v0.5]Django_ํฌ๋กค๋งํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป ๋ฐฑ์—”๋“œ(Back-End)/Node js

[v0.5]Django_ํฌ๋กค๋งํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ

์ง•์ง•์•ŒํŒŒ์นด 2022. 1. 29. 23:26
728x90
๋ฐ˜์‘ํ˜•

220129 ์ž‘์„ฑ

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” beomi์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค>

https://beomi.github.io/gb-crawling/posts/2017-03-01-HowToMakeWebCrawler-Save-with-Django.html

 

Django๋กœ ํฌ๋กค๋งํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ · GitBook

No results matching ""

beomi.github.io

 

 

 

 

 

 

1. Django ์„ค์น˜

pip install django		# ํŒŒ์ด์ฌ์œผ๋กœ ์ž‘์„ฑ๋œ ์˜คํ”ˆ์†Œ์Šค ์›น ํ”„๋ ˆ์ž„์›Œํฌ
pip install pandas		# ๋ฐ์ดํ„ฐ๋ถ„์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
pip install bs4			# ํฌ๋กค๋ง์„ ์šฉ์ดํ•˜๊ฒŒ ๋„์™€์ฃผ๋Š” ๋ชจ๋“ˆ
pip install requests	# ์›นํŽ˜์ด์ง€์—์„œ HTTP ์š”์ฒญ์„ ๋ณด๋‚ด ์›ํ•˜๋Š” HTML ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ชจ๋“ˆ

 

 

2. ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ

django-admin startproject websaver

 

 

3. ์žฅ๊ณ  ์•ฑ ๋งŒ๋“ค๊ธฐ

python manage.py startapp parsed_data

 

 

 

4. ์•ฑ ์ถ”๊ฐ€

:  Django๊ฐ€ ๊ด€๋ฆฌํ•˜๋„๋ก websaverํด๋” ์•ˆ์˜ settings.pyํŒŒ์ผ์˜ INSTALLED_APPS์— ์ถ”๊ฐ€

 

 

 

 

5. DB๋ฅผ migrate

python manage.py migrate

 

 

 

 

6. Model ๋งŒ๋“ค๊ธฐ

:  DB๊ตฌ์กฐ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” Model

: parser.pyํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด ๊ฒŒ์‹œ๊ธ€์˜ title์™€ link๋ฅผ DB์— ์ €์žฅ

 

 

 

 

 

7. ์•ฑ DB ๋ฐ˜์˜

: Django๊ฐ€ ๋ชจ๋ธ์„ ๊ด€๋ฆฌํ•˜๋„๋ก ํ•˜๋ ค๋ฉด makemigrations๋ฅผ ํ†ตํ•ด DB์˜ ๋ณ€๊ฒฝ ์ •๋ณด๋ฅผ ์ •๋ฆฌ

: migrate๋ฅผ ํ†ตํ•ด ์‹ค์ œ DB์— ๋ฐ˜์˜

python manage.py makemigrations parsed_data
python manage.py migrate parsed_data

 

 

 

 

 

8. ํฌ๋กค๋ง ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ

https://beomi.github.io/beomi.github.io_old/

 

Beomi’s Tech Blog

 

beomi.github.io

: ์ด ๋ธ”๋กœ๊ทธ์˜  {'๋ธ”๋กœ๊ทธ ๊ธ€ ํƒ€์ดํ‹€': '๋ธ”๋กœ๊ทธ ๊ธ€ ๋งํฌ'}๋กœ ์ด๋ฃจ์–ด์ง„ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋ฐ˜ํ™˜ ํ•  ๊ฒƒ์ž„

## parser.py
import requests
from bs4 import BeautifulSoup
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "websaver.settings")

import django
django.setup()

## BlogData๋ฅผ importํ•ด์˜ต๋‹ˆ๋‹ค
from parsed_data.models import BlogData

def parse_blog():
    req = requests.get('https://beomi.github.io/beomi.github.io_old/')
    html = req.text
    soup = BeautifulSoup(html, 'html.parser')
    my_titles = soup.select(
        'h3 > a'
        )
    data = {}
    for title in my_titles:
        data[title.text] = title.get('href')
    return data

## ์ด ๋ช…๋ น์–ด๋Š” ์ด ํŒŒ์ผ์ด import๊ฐ€ ์•„๋‹Œ python์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•  ๊ฒฝ์šฐ์—๋งŒ ์•„๋ž˜ ์ฝ”๋“œ๊ฐ€ ๋™์ž‘
if __name__=='__main__':
    blog_data_dict = parse_blog()
    for t, l in blog_data_dict.items():
        BlogData(title=t, link=l).save()

 

 

 

 

9. ํ„ฐ๋ฏธ๋„์—์„œ PY ํŒŒ์ผ ์‹คํ–‰

python parser.py

 

 

 

 

10. ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ Django Admin์—์„œ ํ™•์ธํ•˜๊ธฐ 

: Admin ๊ณ„์ •์„ ๋งŒ๋“ค๊ธฐ

: createsuperuser ๋ช…๋ น์–ด

python manage.py createsuperuser

 

 

 

 

11. ์•ฑ์— admin ๋“ฑ๋ก

: Django๊ฐ€ ์–ด๋–ค ์•ฑ์„ admin์—์„œ ๊ด€๋ฆฌํ•˜๋„๋ก ํ•˜๊ธฐ

## parsed_data/admin.py

from django.contrib import admin

## models์—์„œ BlogData๋ฅผ import 
from .models import BlogData

## ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด BlogData๋ฅผ admin ํŽ˜์ด์ง€์—์„œ ๊ด€๋ฆฌ
admin.site.register(BlogData)

 

 

 

 

12. Django ์„œ๋ฒ„ ์‹คํ–‰ํ•˜๊ธฐ

: manage.py๊ฐ€ ์žˆ๋Š” ์œ„์น˜์—์„œ runserver ๋ช…๋ น์–ด๋กœ ์žฅ๊ณ  ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰

python manage.py runserver

 

 

 

 

13. http://localhost:8000/admin/ ๋“ค์–ด๊ฐ€๊ธฐ

 

 

 

 

 

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•
Comments