wisePocket

[웹개발 종합] 3주차 스터디(WIL) 본문

Python&Flask Tutorials, AWS EB/WIL

[웹개발 종합] 3주차 스터디(WIL)

ohnyong 2023. 7. 8. 22:27

3주차는 Python입문과 웹크롤링, MongoDB까지 과정을 배웠다.

 

 

 

Python:

  • 함수, 변수, 조건문, 반복문 등이 Python에선 어떻게 표현되는지 기초 문법을 사용
  • 주의해야 될 것은 함수는 def라는 명칭으로 시작하고 ' : ' 콜론을 사용한다. 또한 실행될 함수 내용은 ' ' 탭 빈공간으로 열맞춤이 꼭 맞춰줘야 한다는 점
  • 가상환경 venv 구축법(python3 -m venv .venv)
  • venv내 라이브러리 설치법 (pip install xxx)
  • 라이브러리 임포트(import xxx)
  • requests 라이브러리 사용해보기(js fetch와 비슷한 역할) 데이터 가져오기 (data = requests.get(’link’)
  • 크롤링에서 **BeautifulSoup 라이브러리 사용해보기(**우리가 원하는 특정 부분 을 빠르고 쉽게 필터링 해주는 라이브러리)
  • 크롤링 필수 코드
import requests
from bs4 import BeautifulSoup

URL = "https://movie.daum.net/ranking/reservation"
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')
  • soup의 select()를 통해 원하는 데이터 스코프를 지정

 

MongoDB

  • 클라우드 서비스인 MongoDB Atlas 가입
  • Python에서 웹에 있는 MongoDB를 조작 환경구축
  • • dnspython라이브러리 설치pip install dnspython
  • • pymongo라이브러리 설치pip install pymysql
  • pymongo 를 사용해서 DB에 접속
# Python과 DB를 연결하는 코드(공통)
# MongoDB를 사용할 준비가 되었다.
from pymongo import MongoClient
import certifi
ca = certifi.where()
client = MongoClient('mongodb+srv://<account>,test@cluster0.lu7mz8j.mongodb.net/?retryWrites=true&w=majority',tlsCAFile=ca)
db = client.dbsparta
  • from pymongo import MongoClient client = MongoClient('여기에 URL 입력') db = client.dbsparta
  • Atlas에 들어가서 준비해둔 DB에서 Connection string을 URL에 입력
  • certifi 라이브러리 필요(os마다다름)
  • SSL: CERTIFICATE_VERIFY_FAILED 에러 해결
  # INSERT_ONE
  # 저장 - 예시
  # doc = {'name':'bobby','age':21}
  # db.users.insert_one(doc)
  
  # READ(FIND_ONE)
  # 한 개 찾기 - 예시
  # user = db.users.find_one({'name':'bobby'})
  # print(user)
  
  # READ(FIND)
  # 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
  # all_users = list(db.users.find({},{'_id':False}))
  # for a in all_users:
  #     print(a)
  
  # UPDATE
  # 바꾸기 - 예시
  # db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
  
  # DELETE
  # 지우기 - 예시
  # db.users.delete_one({'name':'bobby'})

 

웹 크롤링 데이터를 DB와 연결하여 넣기, 찾기, 수정하기

  • Python에서는 줄바꿈(탭)을 유의
  • 크롤링 할 때 계층 구조를 정확히 이해하면서 원하는 데이터가 어디 있는지 파악

 

해당 스터디는 아래 깃을 통해 업데이트 되고 있습니다.

https://github.com/yzpocket/Sparta99training

 

GitHub - yzpocket/Sparta99training

Contribute to yzpocket/Sparta99training development by creating an account on GitHub.

github.com