Hello creators ๐
3-13_์น์คํฌ๋ํ ๊ฒฐ๊ณผ ์ ์ฅํ๊ธฐ ๋ณธ๋ฌธ
[WEB & AI] (feat. ์ทจ์ค)/์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ_์น๊ฐ๋ฐ์ข
ํฉ๋ฐ
3-13_์น์คํฌ๋ํ ๊ฒฐ๊ณผ ์ ์ฅํ๊ธฐ
๋ถ์๋งค๋_HA 2023. 11. 27. 08:34728x90
๋ฐ์ํ
โ . ์ด๋ฒ ํ์ฐจ ํ์ต ๋ชฉํ (goal)
1. ๋ฐฐ์ฐ๊ณ ์ ํ๋ ๊ฒ
- ํฌ๋กค๋งํ ์ํ, ์์, ์ ๋ชฉ, ๋ณ์ , ์ DB ์ ๋ฃ๊ธฐ
โ ก. ํด๋ณด๊ธฐ
1. ํฌ๋กค๋งํ ์ฝ๋ ๊ฐ์ ธ์ค๊ธฐ
๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ ๊ทผ๋ฐ ์ด๊ฒ ์๋ ์ ํด
โญโญโญโญโญโญโญโญโญโญโญ ๊ทผ๋ฐ ์ฃผ์์ ์ดํดํ๋๋ฐ ๋์์ด ๋ ์ ์์๊ฑฐ ๊ฐ์๋ฐ
import requests
from bs4 import BeautifulSoup
# URL์ ์ฝ์ด์ HTML๋ฅผ ๋ฐ์์ค๊ณ ,
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get('https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20210829',headers=headers)
# HTML์ BeautifulSoup์ด๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด ๊ฒ์ํ๊ธฐ ์ฉ์ดํ ์ํ๋ก ๋ง๋ฆ
soup = BeautifulSoup(data.text, 'html.parser')
# select๋ฅผ ์ด์ฉํด์, tr๋ค์ ๋ถ๋ฌ์ค๊ธฐ
movies = soup.select('#old_content > table > tbody > tr')
# movies (tr๋ค) ์ ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๊ธฐ
for movie in movies:
# movie ์์ a ๊ฐ ์์ผ๋ฉด,
a_tag = movie.select_one('td.title > div > a')
if a_tag is not None:
rank = movie.select_one('td:nth-child(1) > img')['alt'] # img ํ๊ทธ์ alt ์์ฑ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ
title = a_tag.text # a ํ๊ทธ ์ฌ์ด์ ํ
์คํธ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ
star = movie.select_one('td.point').text # td ํ๊ทธ ์ฌ์ด์ ํ
์คํธ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ
print(rank,title,star)
ํฌ๋กค๋งํ ๊ณณ์ db ์ ๋ก๋ ์์ฑํ๊ธฐ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ๊ธฐ๋ณธ ์ฝ๋ ๋ฃ์ด์ฃผ๊ธฐ
from pymongo import MongoClient
# mongoDB ํํ์ด์ง์์ ๊ฐ์ ธ์์ผ ํ๋ ๋ถ๋ถ โ
client = MongoClient('mongodb+srv://test:sparta@cluster0.qsaohhz.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta
- ๋ฐ์ pymongo ๋ฃ๋ ์ฝ๋ ์์ฑ
doc = {
'title' : title,
'rank' : rank,
'star' : star
}
db.movies.insert_one(doc)
- ์ฝ์ด๋ณด๊ธฐ
์ด document ๋ฅผ ๋ฃ์ด์ค๊ฑฐ์ผ
์ด๊ฑด '๋์
๋๋ฆฌ' ํํ๋ก ์จ์ผ ํด
value ์ธ title ๋ณ์๋ฅผ ๋ชฝ๊ณ db ์์ title ๋ก ์ ์ฅํ๊ฒ ๋ค๋ ์๋ฏธ
db.movies.insert_one(doc)
์ฝ๋ ์
์ด๋ฆ์ movies ๋ก ํด์ ๋ฃ๋๋ค! ์ข ๋ ์๋กญ๊ฒ
- ๊ฒฐ๊ณผ๋ฌผ
์ค ๋ค์ด๊ฐ๋ค
์ ๊ธฐํ๋ค
728x90
๋ฐ์ํ
'[WEB & AI] (feat. ์ทจ์ค) > ์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ_์น๊ฐ๋ฐ์ข ํฉ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
3-15_ 3์ฃผ์ฐจ ๋ & ์์ ์ค๋ช (1) | 2023.11.28 |
---|---|
3-14_ Quiz_์น์คํฌ๋ํ ๊ฒฐ๊ณผ ์ด์ฉํ๊ธฐ (2) | 2023.11.28 |
3-12_pymongo๋ก DB์กฐ์ํ๊ธฐ (1) | 2023.11.26 |
3-11_mongoDB ์ฐ๊ฒฐํ๊ธฐ (0) | 2023.10.16 |
3-10_mongoDB ์์ํ๊ธฐ (0) | 2023.10.16 |
Comments