커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
숙제 api 만드는 부분.. 에러
undefined주차
북마크
박*혁
댓글
1
추천
0
조회수
9
조회수
9
답변 완료

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

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


숙제영상 따라하기 하는데 에러뜨고 해결 못하고 있어요;;



스파르타 즉문즉답



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://sparta:test@cluster0.ioiugmd.mongodb.net/?retryWrites=true&w=majority")

db = client.pirates_lv1


@app.route('/')

def home():

    return render_template("index.html")


@app.route('/exhibit', methods=["POST"])

def post_exhibit():

    url_receive = request.form["url_give"]

   

    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_receive, headers=headers)

    soup = BeautifulSoup(data.text, 'html.parser')


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

    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.replace('\n',' ')


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

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


    doc = {

        'url':url_receive,

        'title':title,

        'period':period,

        'tags':tags,

        'image':image


        }

    db.exhibition.insert_one(doc)



    return jsonify({"msg": "저장 완료!"})


@app.route('/exhibit', methods=["GET"])

def get_exhibit():

    exhibitions = list(db.exhibition.find({},{'_id':False}))

    return jsonify({"exhibitions": exhibitions})


@app.route('/now', methods=["GET"])

def get_now():

    url = 'https://korean.visitseoul.net/exhibition'


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


    items = soup.select('.item > a')

    base = 'https://korean.visitseoul.net'


    docs = []

    for item in items:

        url = base+item['href']

        image = base+item.select_one('.thumb')['style'].split('(')[1].replace(')','')

        title = item.select_one('.title').text

        period = item.select_one('.small-text.text-dot-d').text.strip()

        doc = {

            'url':url,

            'image':image,

            'title':title,

            'period':period

        }

        docs.append(doc)


   

        return jsonify({"now": docs})


if __name__ == "__main__":

    app.run(debug=True, port=8080)



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