๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
[v0.5]Django_ํฌ๋กค๋งํ ๋ฐ์ดํฐ ์ ์ฅํ๊ธฐ ๋ณธ๋ฌธ
[v0.5]Django_ํฌ๋กค๋งํ ๋ฐ์ดํฐ ์ ์ฅํ๊ธฐ
์ง์ง์ํ์นด 2022. 1. 29. 23:26220129 ์์ฑ
<๋ณธ ๋ธ๋ก๊ทธ๋ 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/ ๋ค์ด๊ฐ๊ธฐ
'๐ฉโ๐ป ๋ฐฑ์๋(Back-End) > Node js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Flask ์์ํด๋ณด๊ธฐ _ MongoDB ์ฐ๊ฒฐํ๊ธฐ (2) (0) | 2022.10.31 |
---|---|
Flask ์์ํด๋ณด๊ธฐ _ ๊ฒ์๊ธ ๋ง๋ค๊ธฐ (1) (0) | 2022.10.31 |
[v0.4]Django_์นํ์ด์ง ๋ง๋ค๊ธฐ 2_DB ์ฐ๊ฒฐ (0) | 2022.01.23 |
[v0.3]Django_์นํ์ด์ง ๋ง๋ค๊ธฐ 1_๋ชจ๋ธ (0) | 2022.01.15 |
[v0.2]Django_์ฑ ๋ง๋ค๊ธฐ (0) | 2022.01.15 |