본문 바로가기

개발공부/스파르타코딩

[ 사전스터디 ] 웹개발 종합반 3주차

Python

정의. 파이썬은 소프트웨어 엔지니어인 귀도 반 로섬이 발표한 고급 프로그래밍 언어로 플랫폼에 독립적이며 
     인터프리터식, 객체지향적, 동적 타이핑 대화형 언어

 

자료형.
숫자, 문자, Boolean, 리트스, 딕셔너리로 구성

조건문.
if (condition) :
    //logic
else :
   // logic
   
반복문
list = [value1, value2, value3, ...]
for element in list :
    //logic

함수.
def functionName :
    //logic

웹 스크래핑

정의. 웹 페이지의 정보를 수집하는 일련의 행동

 

라이브러리.
pip install bs4
pip install requests

코드.
import requests
from bs4 import BeautifulSoup

URL = "URL 정보"
headers = {'header key': 'header value', ...}
data = requests.get(URL, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')

elements = soup.select("selector 경로")

for element in element :
    // logic

DB

정의. 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합

 

SQL(RDBMS). 
행/열의 생김새가 정해진 엑셀에 데이터를 저장하는 것과 유사한 데이터베이스로 유연성은 낮으나 일관성은 높아 분석에 용이하다.

No-SQL.
딕셔너리 형태로 데이터를 저장해두는 데이터베이스로 자유로운 형태의 데이터 적재에 유리한 대신, 일관성이 부족하다.

 

Python MongoDB Connection.

라이브러리.
pip install pymongo
pip install dnspython

코드.
from pymongo import MongoClient
import certifi
client = MongoClient('DB 주소')
db = client.dbsparta

db.users.insert_one(저장할 데이터)

이슈

내용. 수업에서 사용하는 Python 버전과 달리 3.7를 사용했을 때 제공되는 DB Connection 코드가 작동하지 않음

 

해결. mongoDB 연결시 certifi 라이브러리를 사용해 tlsCAFile 옵션에 값 부여

추가 라이브러리.
pip install certifi

코드 변경.
[변경 전] client = MongoClient('DB 주소')
[변경 후] client = MongoClient('DB 주소', tlsCAFile=certifi.where())

좋았던 점

실제 사이트에서 스크래핑 코드를 사용해 볼 수 있었다. 수집한 데이터를 DB에 저장하고 꺼내볼 수 있었다. 마지막으로 제공된 코드가 동작하지 않아 검색을 해보며 해결할 수 있는 시간을 가진 것이 좋았다.