python flask 코드 뜯어보기

백종석·2022년 5월 9일
0

pyton-flask

목록 보기
1/2

웹페이지에서 데이터 크롤링을 해주기 위해 필요한 페키지를 import해준다.

# 크롤링을 하기 위한 package import
import requests
from bs4 import BeautifulSoup

크롤링 또는 작성한 데이터를 DB에 저장할때 사용하는 import코드

  1. 로컬 환경에 있는 mongoDB에 연결해 주기 위한 코드
# mongoDB에 저장하기 위한 package import
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
  1. 클라우드 환경에 있는 mongoDB에 연결해 주기 위한 코드
# mongoDB에 저장하기 위한 package import
from pymongo import MongoClient

client = MongoClient('mongodb+srv://<username>:<password>@cluster0.zuy17.mongodb.net/myFirstDatabase?retryWrites=true&w=majority')
db = client.dbsparta

크롤링된 데이터를 DB에 저장하는 POST API 역할을 하는 코드

## API 역할을 하는 부분
@app.route('/memo', methods=['POST'])
def saving():
	# 클라이언트로부터 전달 받는 데이터
    url_receive = request.form['url_give']
    comment_receive = request.form['comment_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)
	
    # 크롤링한 데이터를 BS에 넣는 부분
    soup = BeautifulSoup(data.text, 'html.parser')

	# og 태그 데이터 부분
    title = soup.select_one('meta[property="og:title"]')['content']
    image = soup.select_one('meta[property="og:image"]')['content']
    desc = soup.select_one('meta[property="og:description"]')['content']

	# DB에 저장
    doc = {
        'title':title,
        'image':image,
        'desc':desc,
        'url':url_receive,
        'comment':comment_receive
    }

    db.articles.insert_one(doc)

    return jsonify({'msg':'저장이 완료되었습니다!'})하세요
profile
항해중인 우당탕탕 코린이

0개의 댓글