본문 바로가기
TIL/웹 초보

23.04.12

by J1-H00N 2023. 4. 12.

인터프리터가 'venv':venv로 안돼있을 경우 - 터미널 -> python -m venv venv -> 새 터미널 열기

 

pip install requests

pip install 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')

 

원하는 정보 불러오기

불러올 정보 우클릭 -> 검사 -> 우클릭 -> selector 복사 -> 변수명 = soup.select(selector에서 불러올 범위까지만)

                                                                                                          soup.select_one(selector에서 불러올 범위까지만)

(select_one은 일치하는 것 중 첫번째만 가져온다.)

글자만 가져오기 - 변수명.text

속성 가져오기 - ['속성']

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.daum.net/ranking/reservation', headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')

lis = soup.select('#mainContent > div > div.box_ranking > ol > li')

#mainContent > div > div.box_ranking > ol > li:nth-child(1) > div > div.thumb_item > div.poster_info > a
#mainContent > div > div.box_ranking > ol > li:nth-child(1) > div > div.thumb_cont > span.txt_append > span:nth-child(1) > span
#mainContent > div > div.box_ranking > ol > li:nth-child(1) > div > div.thumb_item > div.poster_movie > span.rank_num
for li in lis:
    a = li.select_one('div > div.thumb_cont > strong > a')
    title = a.text
    span = li.select_one('div > div.thumb_cont > span.txt_append > span:nth-child(1) > span')
    star = span.text
    rank_num = li.select_one('div > div.thumb_item > div.poster_movie > span.rank_num')
    rank = rank_num.text
    print(rank, title, star)

 

 

데이터베이스의 종류

SQL(RDBMS) - 행/열의 생김새가 정해진 엑셀과 유사한 형태의 데이터, 데이터가 정형화된 대기업에서 사용

NoSQL(Not only SQL) - SQL 뿐만 아니라 정형화 되지 않은 유형의 데이터베이스, 스타트업이 서비스가 커지기 전 사용

 

pip install dnspython

pip install pymongo

 

pymongo 기본 코드

from pymongo import MongoClient
client = MongoClient('여기에 URL 입력')
db = client.dbsparta

URL - Atlas -> Cluster() - Connet -> Connect Your Application -> python, 3.6 later -> copy

->  username:<password>에 password 입력

 

크롤링 강의 전반부를 들으며 적은 내용들이 실수로 날아가버렸다... 다행히 대부분 기초 코드나 설정같은 내용들이라 날아간 내용들은 2회차에서 복습하기로 하고, 이번 실수를 교훈 삼아 코드뿐만 아니라 무엇이든 저장하리라 마음먹었다.

 

스배캠 사전캠프에서 java강의를 병행하다 보니 내용이 섞여 오히려 효율이 떨어지는 것 같아 웹 초보 강의를 1회 완주하고 java 강의를 따라잡아야 할 것 같다. 

 

크롤링에서 python을 사용해 반가운 마음도 잠시 DB로 넘어가 버리니 벌써 두렵다. 내일도 천천히 제대로 공부할 수 있길

'TIL > 웹 초보' 카테고리의 다른 글

챗GPT로 웹사이트 만들기  (0) 2023.04.13
23.04.13  (0) 2023.04.13
23.04.07  (0) 2023.04.07
23.04.06  (0) 2023.04.06
23.04.05  (0) 2023.04.05