[python] 크롤링(requests, bs4) , mongo DB 정리, Flask(서버)

#Ajax 기본 코드

 

$.ajax({
  type: "GET",
  url: "여기에URL을입력",
  data: {},
  success: function(response){
    console.log(response)
  }
})

 

#API 만들기

 

$포스트 요청 방식

-Post 요청 확인 ajax 코드

function hey(){
            $.ajax({
                type: "POST",
                url: "/test",
                data: {title_give: '봄날은간다'}, 
                success: function (response) {
                    console.log(response)
                }
            })
            
1. hey 함수가 실행되면, title_give 키워드에 '봄날은 간다' 라는 값을 서버 /test창구로 보낸다

-Post 요청 API 코드

@app.route('/test', methods=['POST']) #/test 창구가 있고,
def test_post():
   title_receive = request.form['title_give'] # title_give라는 값에, 봄날은 간다 라는 데이터가 있다
   print(title_receive)
   return jsonify({'result':'success', 'msg': '요청을 잘 받았습니다'})
   
 2. title_give라는 키워드를 받아서, title_receive라는 변수에 저장한다 ( 본날은 간다 값 )

 

 

$get 요청 방식

-Get 요청 확인 ajax 코드

function hey(){
            $.ajax({
                type: "GET",
                url: "/test?title_give=봄날은간다", //test 라는 창구에 가서 title_give라는 키에 [봄날은 간다]라는 값을 가져갈게
                data: {},
                success: function (response) { //성공한다면, response에 담겨져 있는 값을 콘솔에 찍어볼게
                    console.log(response)
                }
            })

-Get 요청 API 코드 

@app.route('/test', methods=['GET'])
def test_get():
   title_receive = request.args.get('title_give') #title_give라는 이름의 데이터를 받아서 변수에 저장
   print(title_receive) # 해당 변수를 출력함
   return jsonify({'result':'success', 'msg': '이 요청은 GET!'}) # 이 반환 값은 Ajax response로 이동

 

#Flask에 필요한 패키지(프레임워크)

1. Flask

 

#Flask 기본 코드

 

from flask import Flask, render_template, request, jsonify # html과 app.py과 연결하기 위해서 임포트
app = Flask(__name__)

@app.route('/')
def home():
   return render_template('index.html') # 해당창구로 html 불러오기

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

 

#크롤링에 필요한 패키지

1. requests

2. bs4

 

#크롤링 기본코드

import requests # http에 요청해서 html을 가져오는 것
from bs4 import BeautifulSoup # 가져온 html의 구문 분석하여 필요한 정보만 가공 축출 하는 것

headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'}
data = requests.get('https://www.melon.com/chart/index.htm',headers=headers)

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

# 코딩 시작
#title은 객체 =서랍장, 난 서랍장을 열었다,, 그 안에 파일이 여러개 있는데 그중에 text라는 이름의 파일(프로퍼티)를 꺼낸다

#user_agent 확인 방법

1. 콘솔창에 navigator.userAgent 라고 검색하면 나온다

 

 

#monggo DB 필요 패키지

1. pymongo

2. dnspython

 

#pymongo  기본코드

 

from pymongo import MongoClient 
client = MongoClient('몽고DB URL')

db = client.dbsparta

 

#pymongo  사용코드

# 저장 - 예시

doc = {'name':'bobby','age':21}
db.users.insert_one(doc)



# 한 개 찾기 - 예시

user = db.users.find_one({'name':'bobby'})



# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)

all_users = list(db.users.find({},{'_id':False}))



# 바꾸기 - 예시

db.users.update_one({'name':'bobby'},{'$set':{'age':19}})



# 지우기 - 예시

db.users.delete_one({'name':'bobby'})

 

#Jquary 기본코드

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>