목차

  • 필요한 소프트웨어
  • 파이썬 기본 문법
  • 파이썬을 활용한 크롤링 (requests, beautifulsoup 라이브러리)
  • mongoDB
  1. 필요한 소프트웨어
    (1) 파이썬 3.8.5version 설치
    ※파이썬 설치 및 이용 시, 절대 한글 이름이 포함된 폴더나 파일이 경로상에 있지 않도록 하는 것이 좋음. (한글이 포함된 경로일 경우 파이썬이 제대로 작동하지 않을 수 있음)

    (2) Robo 3T
    db는 눈으로 볼 수 없는 상태로 존재하기 때문에 이를 사용자가 보기 쉽게 해주는 소프트웨어가 필요함. 우리는 Robo 3T를 그것으로 활용했음.

  2. 파이썬 기본 문법
    (1) 변수 선언
    javascript에서는 let을 통해 변수를 선언했지만, 파이썬에서는 아예 자료형을 정해줄 필요도 없다. 아무렇게나

    a = 1
    b = 'bob'

    이런 식으로 입력하면 알아서 a에 숫자(정수) 1을 저장하고, b에 문자열 bob을 저장한다.

    (2) 리스트와 딕셔너리
    리스트는 2주차 javascript에서 학습했던 배열과 유사하다.

    a_list = [] #선언
    a_list.append(1) #리스트에 1이라는 값을 추가
    a_list.append([2,3]) #리스트에 [2,3]이라는 리스트를 추가

    선언부터 추가까지 위 정도 알고 넘어가도록 하자.

    딕셔너리 역시 2주차에서 학습했던 자바스크립트의 딕셔너리와 유사하다.

    a_dict = {} #선언
    a_dict = {'name':'bob', 'age':21} #name이 bob이고, age가 21인 정보를 저장
    a_dict['height'] = 178 #height가 178이라는 정보를 추가

    리스트와 딕셔너리를 적절히 조합하면 복잡해보이는 연산들을 많은 경우 간단하게 수행할 수도 있다.

    people = [{'name':'bob','age':20},{'name':'carry','age':38}] #리스트 안에 딕셔너리 두개를 저장 (두명의 정보를 한꺼번에 저장할 수 있음)

    (3) 함수

    def f(x):
        return 2*x+3

    위와 같이 def를 이용하여 선언하면 파이썬은 이를 함수로 인식한다.
    주의할 점은 파이썬은 함수나 조건문, 반복문 등을 활용할 때 중괄호를 사용하지 않는다는 점이다. 그 대신 tab을 이용하여 이를 구분한다.

    (4) 조건문과 반복문
    (a) 조건문

    if num % 2 == 0:
        return True 
    else: 
        return False 

    위와 같은 식으로 조건문을 구성할 수 있다. 이때도 tab에 주의하며 코딩하도록 하자.

    (b) 반복문
    javascript에서 for문은 i를 선언하여 i가 n과 같아지기 전까지 반복하였다.
    반면에 파이썬은 무조건 for문을 리스트와 함께 사용한다.

    fruits = ['사과','배','감','귤']
    
    for fruit in fruits:
        print(fruit)

    이 때 fruit도 새로 선언해줄 필요없다.

  1. 파이썬을 활용한 웹 크롤링(스크래핑) - Requests, 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')
    # 코딩 시작

    위와 같은 기본 코드 세팅으로 시작한다.
    위 코드에서 스크롤할 때마다 바꿔줘야하는 부분은 requests.get('url')부분에 있는 url부분 뿐이다.

    soup는 내가 url로 입력한 페이지에 접속했을 당시의 html를 저장하고 있다.
    크롬에서 검사에서 copy selector를 통해 원하는 부분을 부분적으로 선택할 수 있음.

  2. mongoDB
    mongoDB는 No-SQL(Not only SQL)로 정해진 형식이 없으므로 해당 열에 데이터가 없으면 없는 상태로 자유롭게 저장하는 형태를 갖지만, 일관성이 없는 단점이 있음.

    from pymongo import MongoClient
    client = MongoClient('localhost', 27017) #localhost의 27017포트에 client를 저장
    db = client.dbsparta #client안에 dbsparta를 만들고 이를 db로 지정
    # 코딩 시작

    위와 같이 3줄을 입력해주면 mongoDB를 이용할 준비가 완료된 것임.

    (1) 기본 데이터 활용법
    -데이터 저장
    db.users.insert_one({'name':'bobby'})
    이와 같이 코드를 입력하면 db안에 users를 만들고 그 안에 name이 bobby인 데이터 하나를 저장함.

    -데이터 검색
    find / find_one
    find를 사용하면 해당하는 모든 결과 값을 추출 / find_one을 이용하면 가장 위에 있는 정보만 추출

    same_ages = list(db.users.find({'age':21},{'_id':False}))
    위와 같은 코드를 이용하면 users안에서 age가 21인 데이터를 _id를 제외하고 저장.

    user = db.users.find_one({'name':'bobby'})
    find_one은 위와 같이 사용.

    -데이터 수정
    db.users.update_one({'name':'bobby'},{'$set':{'age':19}})

    -데이터 삭제
    db.users.delete_one({'name':'bobby'})

    mongoDB와 웹 크롤링을 조합하여 이용하면 웹상에 있는 정보를 db에 손쉽게 저장할 수 있음.

profile
이강산입니다.

0개의 댓글