1_3주차에 배운 내용입니다.
파이썬 프로젝트에서 회사에서는 패키지 A, B, C를 사용하고, 개인프로젝트로는 B, C, D, E를 사용하고 있다고 가정할 때 내 PC에는 패키지 A, B, C, D, E가 설치되어있다고 할 수 있다. 만약 여기서, 회사에서 패키지 B를 B*로 바꾼다면 내 개인프로젝트도 B패키지를 사용하기 때문에 문제가 발생한다. 여기서 가상환경이라는 개념이 등장하였다. 가상환경이란, 프로젝트마다 다른 패키지를 사용할 수 있고 서로 다른 프로젝트의 동작에 영향을 주지 않기 위해, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경입니다.
크롤링 기초
준비: requests, 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.36 data = requests.get('크롤링할 주소',headers=headers) soup = BeautifulSoup(data.text, 'html.parser') //코딩시작(soup이라는 변수에 "파싱 용이해진 html"이 담긴 상태임)
sql과 NoSQL에 대한 간략한 비교
RDBMS(SQL)
행/열의 생김새가 정해진 엑셀에 데이터를 저장하는 것과 유사합니다. 데이터 50만 개가 적재된 상태에서, 갑자기 중간에 열을 하나 더하기는 어려울 것입니다. 그러나, 정형화되어 있는 만큼, 데이터의 일관성이나 / 분석에 용이할 수 있습니다.
ex) MS-SQL, My-SQL 등
No-SQL
딕셔너리 형태로 데이터를 저장해두는 DB입니다. 고로 데이터 하나 하나 마다 같은 값들을 가질 필요가 없게 됩니다. 자유로운 형태의 데이터 적재에 유리한 대신, 일관성이 부족할 수 있습니다.
ex) MongoDB
준비: pymongo, dnspython 패키지 설치, pymongo는 mongoDB를 조작하기 위함.
기본 세팅↓from pymongo import MongoClient client = MongoClient('여기에 커넥션 URL 입력') db = client.dbsparta
데이터를 조작하는법↓
#. 저장 - 예시 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'})
후기: SQL인 MySQL만 사용해보다가 처음으로 NoSQL인 MongoDB를 사용해보게 되어 기대가 되었음.
참고자료