커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
1-5 파이썬으로 전시회 데이터 가져오기 <= DB 저장이 안돼요
undefined주차
북마크
박*연
댓글
1
추천
0
조회수
8
조회수
8
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


크롤링까지는 되는 거 확인했는데 mongoDB에 저장이 안돼요

뭐가 잘못된 것 같은데 뭐가 잘못됐는지 모르겠어요



스파르타 즉문즉답스파르타 즉문즉답




작성한 코드 및 에러 메세지

import requests

from bs4 import BeautifulSoup


from pymongo import MongoClient

client = MongoClient("mongodb+srv://sparta:<test>@cluster0.ynfbdif.mongodb.net/?retryWrites=true&w=majority")

db = client.pirates_lv1


url = 'https://korean.visitseoul.net/exhibition/2023--DDP-Seoul-light/KOPhonaqg'


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


title = soup.select_one('#container > div.wide-inner > section > h3').text.strip()

period = soup.select_one('#container > div.detial-cont-element.active > div > dl:nth-child(1) > dd').text.strip()

tags = soup.select_one('#container > section.tag-element.poi > p').text.strip().replace('\n',' ')

image = soup.select('.item')[1]['style'].replace("background-image:url('",'').replace("');",'')

image = 'https://korean.visitseoul.net' + image


doc = {

    'title' : title,

    'period' : period,

    'tags' : tags,

    'image' : image

}


db.exhibition.insert_one(doc)



---------------------------------------------------------------------------------------------------


Park@PARKCY MINGW64 ~/Desktop/pirates/web/lv1

$ python test.py

Traceback (most recent call last):

 File "test.py", line 28, in <module>

  db.exhibition.insert_one(doc)

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\collection.py", line 628, in insert_one

  self._insert_one(

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\collection.py", line 569, in _insert_one

  self.__database.client._retryable_write(acknowledged, _insert_command, session)

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\mongo_client.py", line 1476, in _retryable_write

  return self._retry_with_session(retryable, func, s, None)

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\mongo_client.py", line 1349, in _retry_with_session

  return self._retry_internal(retryable, func, session, bulk)

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\_csot.py", line 105, in csot_wrapper

  return func(self, *args, **kwargs)

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\mongo_client.py", line 1381, in _retry_internal

  with self._get_socket(server, session) as sock_info:

 File "C:\Users\Park\AppData\Local\Programs\Python\Python38\lib\contextlib.py", line 113, in __enter__

  return next(self.gen)

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\mongo_client.py", line 1217, in _get_socket

  with server.get_socket(handler=err_handler) as sock_info:

 File "C:\Users\Park\AppData\Local\Programs\Python\Python38\lib\contextlib.py", line 113, in __enter__

  return next(self.gen)

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\pool.py", line 1407, in get_socket

  sock_info = self._get_socket(handler=handler)

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\pool.py", line 1520, in _get_socket

  sock_info = self.connect(handler=handler)

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\pool.py", line 1378, in connect

  sock_info.authenticate()

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\pool.py", line 870, in authenticate

  auth.authenticate(creds, self)

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\auth.py", line 549, in authenticate

  auth_func(credentials, sock_info)

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\auth.py", line 475, in _authenticate_default

  return _authenticate_scram(credentials, sock_info, "SCRAM-SHA-1")

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\auth.py", line 241, in _authenticate_scram

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\pool.py", line 767, in comma

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\pool.py", line 767, in command

  return command(

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\network.py", line 166, in command

  helpers._check_command_response(

 File "C:\Users\Park\Desktop\pirates\web\lv1\venv\lib\site-packages\pymongo\helpers.py", line 181, in _check_command_response    

  raise OperationFailure(errmsg, code, response, max_wire_version)

pymongo.errors.OperationFailure: bad auth : authentication failed, full error: {'ok': 0, 'errmsg': 'bad auth : authentication failed', 'code': 8000, 'codeName': 'AtlasError'}

(venv)

Park@PARKCY MINGW64 ~/Desktop/pirates/web/lv1

$

취소
 공유
취소
댓글 0
댓글 알림
나의얼굴