티스토리 뷰

개발

[항해99] 3주차 강의

호호홍얍얍 2022. 4. 7. 17:31

파이썬 설치

자바스크립트 repeat()

문자를 원하는 개수만큼 반복해준다.

⇒ ‘o’.repeat(4) → oooo

 

파이썬

  • 리스트 추가: .push()가 아니라 .append()
  • 들여쓰기가 굉장히 중요(중괄호 대체)
  • 함수의 형태
    • def sum(a, b): return a + b
  • 조건문
    • def is_adult(age): if age > 20: print('성인입니다') else: print('청소년입니다')
  • 반복문
    • for fruit in fruits: print(fruit)
  • text[0:2]: 앞에서 두 글자만 끊기
  • strip([chars]) : 인자로 전달된 문자를 String의 왼쪽과 오른쪽에서 제거합니다.
  • lstrip([chars]) : 인자로 전달된 문자를 String의 왼쪽에서 제거합니다.
  • rstrip([chars]) : 인자로 전달된 문자를 String의 오른쪽에서 제거합니다.
  • decompose() : 자식 태그를 삭제할 때 사용
  • extract() : 자식 태그를 추출할 때 사용

파이썬의 환경

  • 패키지 = 라이브러리
  • 가상환경(venv) = 라이브러리를 모아두는 곳. 여러 패키지들이 담겨 있기 때문에 여러 환경에서도 대응할 수 있다
  • requests 패키지: 자바스크립트의 ajax 같은 것
  • 패키지는 상단에 import requests 와 같은 식으로 작성하여 임포트한다

Beautiful Soup

  • html 문서를 분석할 수 있는 라이브러리
  • 기본 세팅
    • headers: 브라우저가 요청하는 것처럼 해주는 친구
    • url에서 가져오는 게 아니라면 requests를 임포트할 필요는 없다
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.naver?sel=pnt&date=20210829>',headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')
  • select_one: 한 개만 가져올 때 사용한다. 문서의 처음부터 html 태그를 찾게되며, 여러 개의 동일한 태그가 있을 경우 가장 첫 태그를 호출한다.
    • 아래는 필요한 선택자를 지정하여 가져오는 코드이다(html 요소에서, copy selector를 선택하면, 해당 요소가 계층으로 표현된다)
    • title = soup.select_one('#old_content > table > tbody > tr:nth-child(2) > td.title > div > a');
    • title.text: a태그의 값을 가져온다
    • title[’href’]: a태그의 속성인 href 속성을 가져온다
  • select: 여러 개의 태그를 리스트 형태로가져온다
    • 값이 없는 경우에는 당연하겠지만 .text가 먹히지 않는다. 그래서 is not None 검사를 하는 것(is not 은 !=로도 쓸 수 있다)
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.naver?sel=pnt&date=20210829>',headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')
movies = soup.select('#old_content > table > tbody > tr')

for movie in movies:
    a = movie.select_one('td.title > div > a')
    if a is not None:
        title = a.text
        star = movie.select_one('td.point').text
        rank = movie.select_one('td:nth-child(1) > img')['alt']
        print(rank, title, star)

 

 

MongoDB

  • 콜렉션이 있고, 그 콜렉션에 딕셔너리 형태로 저장한다
  • 저장 - 예시
    • 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'})

'개발' 카테고리의 다른 글

[노마드코더: 파이썬 챌린지] 문법 강의  (0) 2022.04.12
[항해99] 5주차 강의  (0) 2022.04.11
[항해99] 4주차 강의  (0) 2022.04.08
[항해99] 2주차 강의  (0) 2022.04.07
[항해99] 1주차 강의  (0) 2022.04.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함