개발코딩일지

[비개발자를 위한, 웹개발 종합반 (프로그래밍 실무, 풀스택)] 3주차

JAELEE_FLIGHT 2021. 12. 10. 22:06
728x90
반응형

다 한번에 하려하지마라, 이때까지 작업한 파일들이 있기에 거기서 골라먹어도 된다.

함수시작전에 아래코드로 깔끔하게 지워주고 생성하기

$('#cardsbox').empty();
$.ajax({
            type: "GET",
            url: "http://spartacodingclub.shop/post",
            data: {},
            success: function (response) {
                let rows = response['articles']
                for (let i = 0; i < rows.length; i++) {
                    let comment = rows[i]['comment']
                    let desc = rows[i]['desc']
                    let image = rows[i]['image']
                    let title = rows[i]['title']
                    let url = rows[i]['url']
                    let temp_html = `<div class="card">
    <img class="card-img-top" src="${image}"
         alt="Card image cap">
    <div class="card-body">
        <a href="${url}" class="card-title">${title}</a>
        <p class="card-text">${desc}</p>
        <p class="card-text comment">${comment}</p>
    </div>
</div>`
                    $('#cardsbox').append(temp_html);

 

파이썬이란?

내가쓰는 용어를 컴퓨터 언어로 변환해준다... !?

 

몽고db 실행?

cmd에서 mongod

http://localhost:27017/ 로 몽고db테스트?

 

file - setting - package설치 (requests패키지)

임의로 테스트 하는 글

import requests  # requests 라이브러리 설치 필요

r = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
rjson = r.json()

gus = (rjson['RealtimeCityAir']['row'])

for gu in gus:
    gu_name = gu['MSRSTE_NM']
    gu_mise = gu['IDEX_MVL']
    if (gu_mise >100) :
        print(gu_name, gu_mise)

 

크롤링하기(크롤링을위해 bs4설치하기)

기본코드

검사 : selector로 복사

import requests
from bs4 import BeautifulSoup

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.nhn?sel=pnt&date=20200303',headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')

# 코딩 시작
태그 속성을 가져올때는 title['href'] 텍스트를 가져올때는 title.text

최종코드

print(a_tag.text) 입력시 NoneType에러뜰시 if x is not None

import requests
from bs4 import BeautifulSoup

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.nhn?sel=pnt&date=20200303',headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')
trs = soup.select('#old_content > table > tbody > tr')

for tr in trs:
    a_tag = tr.select_one('td.title > div > a')
    if a_tag is not None:
        rank = tr.select_one('td:nth-child(1) > img')['alt']
        title = a_tag.text
        star = tr.select_one('td.point').text
        print(rank,title,star)

 

mongodb는 눈에 보이지는않지만 이 db값을 로보3t로 불러온다.

pymongo 라이브러리설치하기

 

pymongo 기본코드

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

# 코딩 시작

#insert

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

doc = {'name':'bobby','age':21}
db.users.insert_one(doc)

#find

id:false 는 id값을 불러오지말라는 뜻이다.

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

same_ages = list(db.users.find({'age':21},{'_id':False}))
print(same_ages)

#find 하나만가져오기!

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

user = db.users.find_one({'name':'bobby'},{'_id':False})
print(user)

#update_one 찾아서 수정하라!

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

db.users.update_one({'name':'bobby'},{'$set':{'age':19}})

 

#delete_one 없애버려!!!

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

db.users.delete_one({'name':'bobby'})

 

 

genie로 숙제해보기

위에 기본줄을 제외하고는 .strip()으로 공백을없애고, [0:x] x번째 까지 문자열을 자르기가 추가됨

import requests
from bs4 import BeautifulSoup

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

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://www.genie.co.kr/chart/top200?ditc=D&ymd=20200403&hh=23&rtm=N&pg=1',headers=headers)

soup = BeautifulSoup(data.text,'html.parser')
trs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')

for tr in trs:
    title = tr.select_one('td.info > a.title.ellipsis').text.strip()
    rank = tr.select_one('td.number').text[0:2].strip()
    artist = tr.select_one('td.info > a.artist.ellipsis').text
    print(rank,title,artist)
    #공백없애기 .strip()
    #문자열자르기[0:x]
728x90
반응형