
3-6. 파이썬 패키지 설치하기
파이썬은 라이브러리가 방대함.
Python 에서 패키지는 모듈(일종의 기능들 묶음)을 모아 놓은 단위. 이런 패키지의 묶음을 라이브러리.
외부 라이브러리를 사용하기 위해서는 패키지를 설치해야함.
가상환경 = virtual environment(venv). venv에 앞으로 설치 할 라이브러리들이 담김. 프로젝트별로 패키지들을 담을 공구함.
같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않기 위해,
파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경
File - Settings- Python Interpreter - + - 패키지 검색 후 install #패키지 설치방법
3-7. 패키지 사용해보기
requests 라이브러리 사용해보기
import requests
r = requests.get("URL")
rjson = r.json()
print(rjson)
파이썬에서 들여쓰기는 정말 중요.
3-8. 웹스크래핑(크롤링) 기초
크롤링: 검색 엔진이 내 사이트를 퍼가는 행위.
스크래핑: 예를 들어 네이버 영화 페이지에서 순위의 이름 또는 평점 등을 가져오는것
거의 두단어 혼용해서 많이 씀. 강의에서는 크롤링이라고 할 예정.
크롤링에는 beautifulsoup4이라는 패키지가 필요해 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.3683.86 Safari/537.36'}
data = requests.get('URL',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
#HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦 -
soup이라는 변수에 "파싱 용이해진 html"이 담긴 상태가 됨 -
코딩을 통해 필요한 부분을 추출
크롤링을 할 때는 두가지가 중요함.
1. 코드 단에서 요청을 하는것 #requests
2. 요청을 해서 가지고 온 html 중에서 내가 원하는 정보를 잘 솎아내는것 #BeautifulSoup
requests로 요청을 하고 BeautifulSoup으로 솎아냄.
headers를 붙이는 이유는 코드단에서의 요청을 막아둔 사이트들이 많아서
내가 브라우저에서 엔터 친 것 처럼 효과를 주는것.
beautifulsoup의 사용 방법은 크게 두가지: select_one(하나만 나옴)과 select(리스트로 여러개 나옴)
변수 = soup.select_one("원하는 요소 개발자도구에서 copy selector 복붙") #변수의 위치를 알려줌
selector: 선택자. 해당 요소가 어디에 있는지 정확히 알려주는것.
태그와 태그 안에 있는 텍스트를 가져오고 싶으면 print(변수.text)
태그의 속성을 가지고 오고 싶으면 print(변수["href"])
if 변수 is not None: #변수가 None이 아니라면
3-9. Quiz_웹스크래핑(크롤링) 연습
네이버 영화 순위, 제목, 별점 가져오기
3-10. DB설치 확인
다운받은 Robo 3T - creat - name에 myLocalDB 또는 내가 원하는 이름 - save #데이터베이스 접속
mongoDB: 데이터베이스. 기본적으로 데이터를 쌓아두는것.
돌아가고는 있지만 내눈에 보이지 않게 켜짐(=그래픽인터페이스(=GUI)를 제공하지 않음).
그래서 robo 3t를 가지고 이 mongoDB의 데이터를 우리 눈으로 볼 수 있게 하는것.
Robo 3T는 mongoDB의 데이터를 보려고 사용함.
3-11. DB개괄
Database에는 크게 두 가지 종류:
1. SQL(MS-SQL, My-SQL, 오라클 등) : 행/열의 생김새가 정해진 엑셀에 데이터를 저장하는 것과 유사.
데이터의 일관성이나 / 분석에 용이.
2. NoSQL(MongoDB) : 딕셔너리 형태로 데이터를 저장해두는 DB.
자유로운 형태의 데이터 적재. 유연함.
초기 스타트업이나 초기 서비스들에서 많이 채택하는 데이터베이스방식.
데이터베이스는 왜 쓰는걸까? 데이터를 잘 가져다 쓰려고.
DB는 프로그램이자 컴퓨터의 역할.
예를 들면 컴퓨터에서 DB도 돌리고 서버도 돌리고 크롤링도 할 수 있음.
3-12. pymongo로 DB조작하기
mongoDB라는 프로그램을 조작하려면, pymongo 라이브러리가 필요.
크롤링과 마찬가지로 기본코드를 항상 갖다 써야함.
기본코드 :
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
.insert = 삽입
db.users.insert_one({'name':'bobby','age':21}) #'users'라는 collection에 {'name':'bobby','age':21}를 넣음
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
.find = 검색
all_users = list(db.users.find({})) #데이터 모두 보기
same_ages = list(db.users.find({'age':21},{'_id':False})) #'_id는 제외하고 'age'가 21인 것만 가져옴.
user = db.users.find_one({'name':'bobby'}) #'bobby' 중 맨 위 하나만 가져옴
.update = 업데이트
db.users.update_one({'name':'bobby'},{'$set':{'age':19}}) #'bobby'를 찾아서 age를 19로 바꿔라.
.delete = 삭제
db.users.delete_one({'name':'bobby'}) #'bobby'삭제'
collections: 비슷한 애들끼리 묶은것.
3-13. 웹스크래핑 결과 저장하기
도큐먼트 만들어 하나씩 insert 하기
doc = {
'rank' : rank,
'title' : title,
'star' : star
}
db.movies.insert_one(doc)
'개발일지' 카테고리의 다른 글
[스파르타코딩클럽/웹개발 종합반] 8일차. 4-6 ~ 4-13 강의 (프로젝트) (0) | 2022.02.14 |
---|---|
[스파르타코딩클럽/웹개발 종합반] 7일차. 3-14 ~ 4-5 강의 (웹스크래핑, flask) (0) | 2022.02.14 |
[스파르타코딩클럽/웹개발 종합반] 5일차. 2-11 ~ 3-5 강의 (Python) (0) | 2022.02.11 |
[스파르타코딩클럽/웹개발 종합반] 4일차. 2-3 ~ 2-10 강의 (jQuery, Ajax, API) (0) | 2022.02.10 |
[스파르타코딩클럽/웹개발 종합반] 3일차. 1-12 ~ 2-2 강의 (Javascript) (0) | 2022.02.09 |