커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
크롤링 한 데이터 mongoDB에 저장하기
undefined주차
북마크
오*은
댓글
6
추천
0
조회수
33
조회수
33
답변 완료

안녕하세요! 무신사 실시간 랭킹 크롤링 한 데이터를 mongoDB에 넣어주고 싶습니다.


그런데 해당 오류가 발생하네요 왜 그런걸까요?


from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@cluster0.rfofzeu.mongodb.net/Cluster0?retryWrites=true&w=majority')
db = client.dbsparta
url = 'https://www.musinsa.com/ranking/best'

response = requests.get(url)

if response.status_code == 200:
    html = response.text
    soup = BeautifulSoup(html, 'html.parser')
    ul = soup.select_one('#goodsRankList')
    titles = ul.select('p.item_title > a')
    rank = ul.select_one('p.txt_num_rank').text[0:20].strip()
    image = ul.select('div.li_inner > div.list_img > a > img')
    comment = ul.select('p.list_info > a')


    # for i, title in enumerate(titles):
    #     print(str(i + 1) + f"위", title.text, image[i]["data-original"], comment[i]["title"])

    doc = {
        'rank': rank,
        'title': titles,
        'image': image,
        'comment': comment
    }

    db.musinsa.insert_one(doc)

else:
    print(response.status_code)

@app.route('/')
def home():
    return render_template('index.html')

@app.route("/musinsa", methods=["GET"])
def musinsa_get():
    musinsa_list = list(db.musinsa.find({}, {'_id': False}))

    return jsonify({'musinsas':musinsa_list})

if __name__ == '__main__':
    app.run('0.0.0.0', port=5000, debug=True)


스파르타 즉문즉답



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