
3-14 몽고디비에 movies 테이블리 안 생깁니다.
hello.py 파일
import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@cluster0.55vah.mongodb.net/Cluster0?retryWrites=true&w=majority')
db = client.dbsparta
# URL을 읽어서 HTML를 받아오고,
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)
# HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦
soup = BeautifulSoup(data.text, 'html.parser')
# select를 이용해서, tr들을 불러오기
movies = soup.select('#old_content > table > tbody > tr')
# movies (tr들) 의 반복문을 돌리기
for movie in movies:
# movie 안에 a 가 있으면,
a_tag = movie.select_one('td.title > div > a')
if a_tag is not None:
rank = movie.select_one('td:nth-child(1) > img')['alt'] # img 태그의 alt 속성값을 가져오기
title = a_tag.text # a 태그 사이의 텍스트를 가져오기
star = movie.select_one('td.point').text # td 태그 사이의 텍스트를 가져오기
doc = {
'rank': rank,
'title': title,
'star': star
}
db.movies.insert_one(doc)
작성한 코드 및 에러 메세지
C:\Users\user\Desktop\sparta\pythonprac\venv\Scripts\python.exe C:/Users/user/Desktop/sparta/pythonprac/hello.py
Traceback (most recent call last):
File "C:\Users\user\Desktop\sparta\pythonprac\venv\lib\site-packages\pymongo\srv_resolver.py", line 89, in _resolve_uri
results = _resolve(
File "C:\Users\user\Desktop\sparta\pythonprac\venv\lib\site-packages\pymongo\srv_resolver.py", line 43, in _resolve
return resolver.resolve(*args, **kwargs)
File "C:\Users\user\Desktop\sparta\pythonprac\venv\lib\site-packages\dns\resolver.py", line 1193, in resolve
return get_default_resolver().resolve(qname, rdtype, rdclass, tcp, source,
File "C:\Users\user\Desktop\sparta\pythonprac\venv\lib\site-packages\dns\resolver.py", line 1053, in resolve
(request, answer) = resolution.next_request()
File "C:\Users\user\Desktop\sparta\pythonprac\venv\lib\site-packages\dns\resolver.py", line 632, in next_request
raise NXDOMAIN(qnames=self.qnames_to_try,
dns.resolver.NXDOMAIN: The DNS query name does not exist: _mongodb._tcp.cluster0.55vah.mongodb.net.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/user/Desktop/sparta/pythonprac/hello.py", line 5, in <module>
client = MongoClient('mongodb+srv://test:sparta@cluster0.55vah.mongodb.net/Cluster0?retryWrites=true&w=majority')
File "C:\Users\user\Desktop\sparta\pythonprac\venv\lib\site-packages\pymongo\mongo_client.py", line 726, in __init__
res = uri_parser.parse_uri(
File "C:\Users\user\Desktop\sparta\pythonprac\venv\lib\site-packages\pymongo\uri_parser.py", line 542, in parse_uri
nodes = dns_resolver.get_hosts()
File "C:\Users\user\Desktop\sparta\pythonprac\venv\lib\site-packages\pymongo\srv_resolver.py", line 121, in get_hosts
_, nodes = self._get_srv_response_and_hosts(True)
File "C:\Users\user\Desktop\sparta\pythonprac\venv\lib\site-packages\pymongo\srv_resolver.py", line 101, in _get_srv_response_and_hosts
results = self._resolve_uri(encapsulate_errors)
File "C:\Users\user\Desktop\sparta\pythonprac\venv\lib\site-packages\pymongo\srv_resolver.py", line 97, in _resolve_uri
raise ConfigurationError(str(exc))
pymongo.errors.ConfigurationError: The DNS query name does not exist: _mongodb._tcp.cluster0.55vah.mongodb.net.
종료 코드 1(으)로 완료된 프로세스
