
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
안녕하세요 3주차 14강 몽고디비 저장 코드 봐주시면 감사하겠습니다.
코드에 대한 해석을 붙여보았습니다.
질문 1 - 코드 해석에 대해 부적절하거나, 추가 사항있으면 지적해 주시기 바랍니다.
질문 2 - 몽고디비 접속에 끊임없이 알수없는 문제가 일어납니다. 가령 며칠전에는 비쥬얼코드와 연결이 안되다가 몽고디비를 크롬아닌 엣지에서 실행하니 연결이되었습니다. 어제도 아래 코드를 실행시키는데 계속 불통이었는데 좀 전에 연결이 되어 무비스라는 콜렉션이 나타났습니다.
원인이 어디 있을지 조언주시기 바랍니다. 감사합니다.
from pymongo import MongoClient
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'}
1-몽고클라이언트를 내포한 라이브러리 파이몽고를 다음 무비를 연결해 실행시킨다.
2-headers는 HTTP 요청을 보낼 때 추가적인 정보를 담는 역할을 합니다.
3- User-Agent는 웹 브라우저의 정보를 담고 있으며, 이를 통해 서버는 요청을 보낸 클라이언트가 누구인지 파악할 수 있습니다. 이 외에도 Accept-Language, Referer 등 다양한 정보를 담을 수 있습니다.
import requests
from bs4 import BeautifulSoup
data = requests.get(URL,headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
4-requests와 bs4는 파이썬에서 웹 스크래핑을 할 때 자주 사용되는 라이브러리입니다. requests는 HTTP 요청을 보낼 수 있도록 기능을 제공하고, bs4는 HTML 태그를 다룰 수 있도록 도와줍니다 . 이 코드는 requests를 사용하여 URL에서 데이터를 가져오고, BeautifulSoup을 사용하여 HTML 태그를 다루기 쉬운 형태로 변환합니다.
client = MongoClient('mongodb+srv://sparta:test@cluster1.03ijx8m.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta
video_list = soup.select("#mainContent > div > div.box_ranking > ol > li")
5-soup.select()은 HTML 태그를 검색하는 함수입니다.
for v in video_list:
# print(v)
rank = v.select_one(".rank_num").text
title = v.select_one(".tit_item").text.strip("\n")
rate = v.select_one(".txt_grade").text
doc = {
'title':title,
'rank':rank,
'rate':rate
}
db.movies.insert_one(doc)
