
안녕하세요! 무신사 실시간 랭킹 크롤링 한 데이터를 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)
