3주차

허현진·2021년 6월 28일
0

프론트&백

목록 보기
3/5

mongoDB실행

cmd창 --> mongod
http://localhost:27017/

파이썬

== 번역팩을 설치하는 것.
파이썬으로 명령을 내리면 컴퓨터가 알아들을 수 있는 언어로 번역해주는 틀.

파이썬 문법 헷갈렷던 것들

딕셔너리 추가

리스트 예제

딕셔너리 예제

파이썬 패키지 설치하기

파일-> 세팅 -> 파이썬 인터프리터 -> + -> 검색 -> 설치
사용 : 구글링 (ex python requests 패키지)

import requests # requests 라이브러리 설치 필요

r = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
rjson = r.json()

print(rjson['RealtimeCityAir']['row'][0]['NO2'])

--> request패키지는 ajax를 두줄만에 실행

크롤링

기술적으로 중요한 두 가지

  1. 코드에서 브라우저 키지 않고 요청(requests)
  2. html들 중에 원하는 정보를 솎아낸다(beautifulsoup)

패키지 설치

beautifulsoup4

beautifulsoup 기본 코드

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('https://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=pnt&date=20200303',headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')

title = soup.select_one('#old_content > table > tbody > tr:nth-child(2) > td.title > div > a') // 한개만 가져오기
--> select_one(검사->copy->selector)
print(title.text)// 태그의 텍스트만 가져옴
print(title['href'])//태그의 속성을 가져옴

trs = soup.select('#old_content > table > tbody > tr')// 여러개 가져오기
--> select는 결과가 리스트로 나옴
for tr in trs:
print(tr)
//여러 리스트 중에 제목만 가져오기
for tr in trs:
a_tag = tr.select_one('td.title > div > a')
if a_tag is not None:
print(a_tag.text)

크롤링 최종 연습

select_one, select

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('https://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=pnt&date=20200303',headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')

trs = soup.select('#old_content > table > tbody > tr')
print(trs)
for tr in trs:
a_image = tr.select_one('td:nth-child(1) > img')
a_tag = tr.select_one('td.title > div > a')
a_star = tr.select_one('td.point')
if a_tag is not None:
print(a_image['alt'],a_tag.text,a_star.text)

크롤링한 내용 DB에 저장하기

mongoDB

--> database , 기본적으로 데이터를 쌓아두는 것
--> 컴퓨터에서 돌아가고 있지만 눈에 보이지 않는 것.

robo 3T

--> mongoDB의 데이터를 시각화 해서 우리 눈에 보이게 해주는 것

DB개괄

사용이유? 데이터를 잘 갖다 쓰려고.(데이터 잘 찾기위함)
종류 ? SQL, NoSQL
SQL - 엑셀에 데이터 저장하는 것과 유사
'-' 중간에 열을 하나 더하기 어려움
'+' 정형화되어있어, 데이터 일관성/분석에 용이
ex) MS-SQL, My-SQL

NoSQL - 한줄 한줄이 딕셔너리 형태로 들어감
'+' 융통성 있게 관리 가능
ex) MongoDB

pymongo로 DB조작하기

--> python으로 mongoDB조작하려면 pymongo라는 라이브러리 사용해야 함.
--> mongodb는 딕셔너리가 쌓이는 것

pymongo 기본 코드

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

insert

doc = {'name':'bobby','age':21}
db.users.insert_one(doc)

find, find_one

same_ages = list(db.users.find({'age':21},{'_id':False}))

user = db.users.find_one({'name':'bobby'})

update_one

db.users.update_one({'name':'bobby'},{'$set':{'age':19}})

delete_one

db.users.delete_one({'name':'bobby'})

https://www.notion.so/3-ed5a2f9b258b4ac6bb63b95c3af4f6a5

profile
코딩일지..

0개의 댓글