스파르타 코딩 웹 개발 종합반 - 3주차 회고
3주차에는 다양한 기술들을 실습해볼 수 있어서 재미있게 느껴졌다. 기존에 서비스되고 있는 페이지의 정보를 가져오는 크롤링이나 정보를 가공하여 뽑아 쓸 수 있도록 MongoDB Atlas의 클라우드 DB도 연결하여 실습해보았다.
이를 기반으로 하는 파이썬에 대한 기초 문법부터 DB연결 소스코드까지 알찬 내용을 짧은 시간에 녹여내어 흥미 위주로 수업을 들었다면, 다음 회차 때에는 생소한 부분이 대다수인 만큼 반복 숙달이 필요하겠다는 생각이 들었다. 또한 독창적인 웹 페이지 구상을 하여 만들어 볼 수 있겠다는 생각도 들었다.
벌써 5주차 수업의 반절을 넘어섰다! 4~5주차 수업 내용도 더욱 궁금하고 기대된다.
3주차 학습 내용 요약
파이썬을 활용한 크롤링
ㅁ 준비
python 다운로드
git bash 다운로드
파이썬
ㅁ특징
자료형 선언 필요없음
들여쓰기로 코드 구분
<리스트>
요소 추가 - 리스트.append()
<딕셔너리>
괄호표기법
<함수>
def functionName():
return
def sum(a, b):
return a + b
print(sum(2, 3))
<조건문>
def isAdult(age):
if(age > 20):
print('성인입니다.')
else:
print('미성년자입니다.')
isAdult(19)
<반복문>
items = [1, 2, 3, 4, 5]
even = 0
for item in items:
if(item%2==0):
even += 1
print(even)
패키지 설치 - 외부 라이브러리 설치
파이참 - 파일 - 설정 - Python 인터프리터 - + - request 패키지 설치
-> Ajax같은 통신 기능
가상환경 - 라이브러리를 담아두는 곳
< requests library 사용법 >
import requests
r = requests.get('API URL')
rjson = r.json()
크롤링 환경세팅
- beautifulSoup(bs4) 라이브러리 설치
- bs4 import 및 파이썬 코드로 크롤링하기
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'}
# 크롤링 하고 싶은 URL 주소를 넣어준다.
data = requests.get('URL',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
# tr을 기준으로 list만들기
movies = soup.select('#old_content > table > tbody > tr');
# tr태그로 묶인 요소의 정보 가져오기
for movie in movies:
a = movie.select_one('td.title > div > a')
img = movie.select_one('img')
point = movie.select_one('td.point')
if a != None:
print(a.text, img['alt'], point.text)
DB
정렬된 data를 뽑아 쓰기 위해 사용한다.
MySQL - SQL
엑셀 형태
mongoDB - NoSQL(not only)
유연하게 대처 가능
mongoDB Atlas - 클라우드 서비스 사용!
파이썬 <-> mongoDB 연결하기
1. pymongo, dnspython 패키지 필요
from pymongo import MongoClient
# MongoDB Atlas > Database > Connect에서 URL 확인 가능
client = MongoClient('URL')
db = client.DB명
doc = {
# 더미데이터 생성
}
db.collection명.insert_one(doc)
2. db전용 python파일 생성 후 코드 작성
기본 DB 핸들링
# 저장 - 예시
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}))
# 리스트 요소 출력하기
for item in items:
print(item)
# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
# 지우기 - 예시
db.users.delete_one({'name':'bobby'})
* JS내장함수
- repeat
* Python내장함수
- text[0:2]
- .strip()