[웹개발종합반] 3주차 개발일지 (1) - JQuery, Ajax, API 활용(복습)/ Python 기초/웹크롤링, 웹스크래핑

2021. 7. 26. 17:28·Development
목차
  1. 파이썬 기초 문법
반응형
  • 영화 정보와 코멘트를 API를 통해 가져와서 메모장에 적용하기
    • 영화 랭킹, 제목, 영화설명, 코멘트를 API를 통해 Ajax방식으로 가져오기
    • 이전에 만들었던 나홀로 메모장을 응용해서 만들기

<script>
    $(document).ready(function () {
        listing();
    });
    function listing() {
        $('#cards').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">
                                                <p><a href="${url}" class="card-title">< ${title} ></a></p>
                                                <p class="card-text">${desc}</p>
                                                <p class="card-comment">Comment: ${comment}</p>
                                            </div>
                                        </div>`;

                        $('#cards').append(temp_html);
                    }
                }
        })
    }

 


[수업 목표]

  1. 파이썬 기초 문법을 안다.
  2. 원하는 페이지를 크롤링 할 수 있다.
  3. pymongo를 통해 mongoDB를 제어할 수 있다.

 


파이썬 기초 문법

  • 반복문, 리스트, 딕셔너리 안에 리스트 넣기
fruits = ['사과', '배', '배', '감', '수박', '귤', '딸기', '사과', '배', '수박']
for fruit in fruits:
    print(fruit)

people = [{'name': 'bob', 'age': 20},
          {'name': 'carry', 'age': 38},
          {'name': 'john', 'age': 7},
          {'name': 'smith', 'age': 17},
          {'name': 'ben', 'age': 27}]
for person in people:
    print(person['name'])

 

 


  • 버전이 다른 라이브러리를 번갈아 쓸 때?
    • 설치-삭제-설치-삭제... 번거로움
    • 공구함=가상환경(라이브러리를 담아두는 환경) 을 만들어서 여러 버전을 넣어두고 쓴다.
    • venv(Virtual Environment) 폴더에 포함됨.
    • 파이참 환경설정-해당 프로젝트-인터프리터-requests 인스톨

  • requests 패키지, bs4 패키지 사용해서 크롤링하기
    • 크롤링이 가능한 이유?
      • 1. 브라우저에 데이터를 요청한다. = requests의 역할
      • 2. 내가 원하는 정보를 잘 속아낸다. = bs4가 하는 역할

  • html에서 copy 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=soup.select_one('#old_content > table > tbody > tr:nth-child(2) > td.title > div > a')
print(title)
print(title.text)
print(title['href'])

 

 


    • 영화제목 가져오기
      • tr의 갯수만큰 영화제목이 있으므로, 그 만큼 반복문을 돌린다.
      • 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):
                title=a_tag.text
                print(title)

 

 


  • 연습, 랭크+제목+평점 가져오기
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:
        title = a_tag.text
        rank = tr.select_one('td:nth-child(1) > img')['alt']
        point = tr.select_one('td.point').text

        print(rank, title, point)

 


 

 

저번주차까지 한 내용을 복습 겸 응용해서 웹 페이지를 뜯어보는 연습을 했다.

이제, 파이썬을 가지고 데이터베이스를 다루고

웹에 있는 정보를 재구성하여, 쓸모있는 웹 페이지를 만드는 작업을 할 차례이다!

 

플라스크를 써본적이 없고, 데이터베이스를 가지고 웹페이지를 만들어 본적이 없어서 이 부분이 가장 기대가 된다.

 

아마 파이썬이 가장 쉽고 문법이 직관적인 언어이기 때문에,

이 언어를 활용해서 만들 수 있는 플라스크를 사용해서 강의하는 것 같다.

 

백엔드는 언어 선택지가 많으니까 시작할 때 쉬운걸로 선택하는 것도 최선의 선택이라고 생각한다!!

기대기대!!

 

반응형
저작자표시 (새창열림)

'Development' 카테고리의 다른 글

[프론트엔드] 입문자 공부 방법, 로드맵, 취업 포트폴리오, 코딩 빨리 배우는 법, 코딩 유튜브 추천  (0) 2021.07.27
[웹개발종합반] 3주차 개발일지 (2) - MongoDB  (0) 2021.07.26
[웹개발종합반] 2주차 개발일지 -JS, JQuery, Ajax  (0) 2021.07.24
[웹개발종합반] 1주차 개발일지 (2). JavaScript 기초  (0) 2021.07.24
[웹개발종합반] 1주차 개발일지 (1) - HTML과 부트스트랩 응용  (0) 2021.07.21
  1. 파이썬 기초 문법
'Development' 카테고리의 다른 글
  • [프론트엔드] 입문자 공부 방법, 로드맵, 취업 포트폴리오, 코딩 빨리 배우는 법, 코딩 유튜브 추천
  • [웹개발종합반] 3주차 개발일지 (2) - MongoDB
  • [웹개발종합반] 2주차 개발일지 -JS, JQuery, Ajax
  • [웹개발종합반] 1주차 개발일지 (2). JavaScript 기초
RED BEAN
RED BEAN
웹 프론트엔드 개발블로그입니다. 대화하고싶으시다면 댓글 혹은 ghdqlsdl9633@gmail.com 이메일주시면 감사히 답변하겠습니다. [GitHub - https://github.com/Hong-been]
REDBEAN웹 프론트엔드 개발블로그입니다. 대화하고싶으시다면 댓글 혹은 ghdqlsdl9633@gmail.com 이메일주시면 감사히 답변하겠습니다. [GitHub - https://github.com/Hong-been]
반응형
RED BEAN
REDBEAN
RED BEAN
전체
오늘
어제
  • 분류 전체보기 (102)
    • 계속하는개발 (6)
    • Development (45)
    • Coding Test(Algorithms) (47)
    • Info. (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리자

공지사항

인기 글

태그

  • html
  • 백준
  • 플라스크웹개발
  • 코딩테스트
  • 온라인강의
  • 코테
  • JS
  • React
  • node
  • 모던자바스크립트딥다이브
  • 코딩강의
  • 개발자
  • 티스토리챌린지
  • 오블완
  • 자바스크립트
  • 이직
  • MongoDB
  • css
  • nestjs
  • 국비학원
  • 프론트엔드
  • 자바입출력
  • 글또
  • pymongo
  • 자바
  • 노마드코더
  • 회고
  • 스파르타코딩클럽
  • Flask
  • 웹개발

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.2
RED BEAN
[웹개발종합반] 3주차 개발일지 (1) - JQuery, Ajax, API 활용(복습)/ Python 기초/웹크롤링, 웹스크래핑

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.