오늘은 파이썬을 이용해 정보를 크롤링해와서 몽고디비에 저장하는 걸 해보자
python 문법은 이미 알고있음 나중에 따로 시리즈로 정리하자
같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않기 위해, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경
python -m venv venv
(맥은 python3)
프로젝트에 가상환경을 활성화한 후 필요한 패키지를 설치하면 된당
./venv/Scripts/activate
source venv/bin/activate
deactivate
pip install requests
import requests # requests 라이브러리 설치 필요
r = requests.get('url') # get방식으로 url에서 데이터를 가져옴
rjson = r.json() # 데이터를 json 형태로 변환
print(rjson)
웹 페이지의 구조를 분석하고 파악하여 필요한 데이터를 추출해 내는 행위
bs4
import requests
from bs4 import BeautifulSoup
URL = "https://movie.daum.net/ranking/reservation"
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')
# 선택자를 사용하는 방법 (copy selector)
soup.select('태그명')
soup.select('.클래스명')
soup.select('#아이디명')
soup.select('상위태그명 > 하위태그명 > 하위태그명')
soup.select('상위태그명.클래스명 > 하위태그명.클래스명')
# 태그와 속성값으로 찾는 방법
soup.select('태그명[속성="값"]')
# 한 개만 가져오고 싶은 경우
soup.select_one('위와 동일')
# 태그안의 텍스트 가져오기
태그.text
# 태그안의 속성 가져오기
태그['속성]
해당 문서에 대한 정보인 메타데이터(metadata)를 정의할 때 사용
<head>
요소 내부에 위치<head>
<meta charset="UTF-8">
<meta name="keyword" content="HTML, meta, tag, element, reference">
<meta name="description" content="HTML meta tag page">
<meta name="author" content="TCPSchool">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- 모든 장치에서 웹 사이트가 잘 보이도록 뷰포트(viewport)를 설정 -->
<title>HTML meta tag</title>
</head>
어떤 HTML 문서의 메타정보를 쉽게 표시하기 위해서 메타정보에 해당하는 제목, 설명, 문서의 타입, 대표 URL 등 다양한 요소들에 대해서 사람들이 통일해서 쓸 수 있도록 정의해놓은 프로토콜이며 페이스북에 의하여 기존의 다양한 메타 데이터 표기 방법을 참조하여 만들어졌다
<meta property="og:type" content="website">
<meta property="og:url" content="https://example.com/page.html">
<meta property="og:title" content="Content Title">
<meta property="og:image" content="https://example.com/image.jpg">
<meta property="og:description" content="Description Here">
<meta property="og:site_name" content="Site Name">
<meta property="og:locale" content="en_US">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
광대한 네트워크를 통하여 접근할 수 있는 가상화된 서버와 서버에서 작동하는 프로그램과 데이터베이스를 제공하는 IT 환경
파이썬으로 mongoDB를 사용할 수 있게 해주는 라이브러리
from pymongo import MongoClient
client = MongoClient('여기에 URL 입력')
mongodb+srv://test:<password>@cluster0.d9duesr.mongodb.net/?retryWrites=true&w=majority
👆🏻요 아이를 가져올 것임
# 'DBName'라는 db 생성
db = client.DBName
# 'users'라는 collection에 데이터 하나 삽입
db.users.insert_one({'name':'영희','age':30})
# 모든 데이터 뽑아보기( _id 값은 제외)
all_users = list(db.users.find({},{'_id':False}))
# 특정 데이터 뽑기
user = db.users.find_one({})
# 특정 데이터 수정
db.users.update_one({'name':'영수'},{'$set':{'age':19}})
# 특정 데이터 삭제
db.users.delete_one({'name':'영수'})