[D+54]웹개발 종합강의_3주차

ga_ding·2022년 2월 2일
0

TIL

목록 보기
5/55

본격적으로 파이썬 강의를 시작하기 전에 2주차에 배웠던 ajax와 jquery를 복습해봤다.

    $(document).ready(function () {
            listing();
        });

        function listing() {
             $.ajax({
                type: "GET",
                url: "http://spartacodingclub.shop/web/api/movie",
                data: {},
                success: function (response) {
                    let rows = response['movies']
                    for (let i = 0; i < rows.length; i++) {
                        let title = rows[i]['title']
                        let star = rows[i]['star']
                        let image = rows[i]['image']
                        let comment = rows[i]['comment']
                        let desc = rows[i]['desc']

                        let star_image = '⭐'.repeat(star)

                        let temp_html = `<div class="col">
                                            <div class="card">
                                                <img src=${image} class="card-img-top" alt="...">
                                                <div class="card-body">
                                                    <h5 class="card-title">${title}</h5>
                                                    <p class="card-text">${desc}</p>
                                                    <P>${star_image}</P>
                                                    <P class="mycomment">${comment}</P>
                                                </div>
                                            </div>
                                        </div>`
                        $('#cardbox').append(temp_html)
                    }
                }
             })
        }

여기서 새로 배운 코드는 let star_image = '⭐'.repeat(star) 의미는 ⭐을 star만큼 반복한다는 코드. 완성본은 아래의 사진과 같다.

Python도Jvascript와 마찬가지로 변수, 자료형, 함수, 조건문, 반복문으로 나뉘는데 큰틀로 봤을 때 큰 차이는 없다.
하지만 함수는 Jvascript에선 function으로 시작했다면 Python에서는 def로 시작한다.
Python은 직관적이라서 [],{}가 불필요하며 줄맞춤을 중요시한다.

조건문과 반복문은 예시로 설명하겠다.

def is_adult(age):
    if age>20:
        print('성인')
    else:
        print('청소년')
is_adult(25)

실행을 누르면 '성인'으로 나온다

반복문은 리스트의 요소를 하나씩 꺼내쓰는 형태이다.

 fruits = ['사과','배','배','감','수박','귤','딸기','사과','배','수박']
 for fruit in fruits:
    print(fruit)

이번 강의에서는 문법을 크롤링(웹스크래핑)을 통해서 배우게 되는데 그 중 bs4와 requests라는 라이브러리를 이용했다.

requests는 크롤링 해오고자 하는 페이지의 html을 가져오는 것이고 bs4는 그 중에 특정 데이터 값을 가져오는 라이브러리이다.

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('크롤링하고자 하는 url',headers=headers)

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

# 코딩 시작

크롤링의 기본세팅 코드이다!

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

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

#old_content > table > tbody > tr:nth-child(3) > td.title > div > a
#old_content > table > tbody > tr:nth-child(4) > td.title > div > a

movies = soup.select('#old_content > table > tbody > tr')
for movie in movies:
    a = movie.select_one('td.title > div > a')
    if a is not None:
        print(a.text)

이 리스트들의 제목만 빼내기 위한 코드였다

mongodb를 통해 나의 데이터를 저장하는 시간이었는데 아래의 코드는 계속해서 쓰이는 코드이다.

저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})
여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
all_users = list(db.users.find({},{'_id':False}))
바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
지우기 - 예시
db.users.delete_one({'name':'bobby'})

강의를 마치며 오늘의 숙제는 지니 음악 순위를 크롤링하는거였는데
파이썬이 어려운건지 크롤링이 어려운건지 2회차를 듣는데 여전히 어렵고 헤맸다.
특히나 15위에 위치한 peaches가 19금이라서 그 문구 없애는 것이 가장..^^
(스터디원의 도움으로 해결)
쉽지않고 만만치않다~~~

profile
大器晩成

0개의 댓글