航海99辞書学習の概要
4987 ワード
Pythonでスクロール(トリム)
@デマンド・ライブラリ
import requests
from bs4 import BeautifulSoup
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('https://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=pnt&date=20200303',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
@必要な情報を出力@ 하나만 가져오기
logo = soup.select_one('#header > div.special_bg > div > div.logo_area > h1 > a > span')
print(logo)
@ 여러개 가져오기
lists = soup.select('#old_content > table > tbody > tr')
for item in lists:
print(item)
MongoDBの使用
インストール@MongoDBの確認
localhost:27017接続先
"It looks like you are trying to access MongoDB over HTTP on the native driver port."
画面が上のようでしたらOKです
@デマンド・ライブラリ
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# 저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
# 한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})
# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
same_ages = list(db.users.find({'age':21},{'_id':False}))
# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
# 지우기 - 예시
db.users.delete_one({'name':'bobby'})
Flashインプリメンテーションサーバの使用
@必須フレームワーク
project
ㄴ venv
ㄴ static
ㄴ css
ㄴ images
ㄴ templates
ㄴ index.html
ㄴ app.py
@デフォルトコードfrom flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return render_template('index.html')
if __name__ == '__main__':
app.run('0.0.0.0',port=5000,debug=True)
APIの実装
@デマンド・ライブラリ
from pymongo import MongoClient
from flask import Flask, render_template, jsonify, request
app = Flask(__name__)
client = MongoClient('localhost', 27017)
db = client.dbsparta
# HTML 화면 보여주기
@app.route('/')
def home():
return render_template('index.html')
# API 역할을 하는 부분
@app.route('/api/list', methods=['GET'])
def show_stars():
// request.args.get('title_give') // 해당 변수로 들어온 값 받기
movie_star = list(db.mystar.find({}, {'_id': False}).sort('like', -1))
return jsonify({'movie_stars': movie_star})
@app.route('/api/like', methods=['POST'])
def like_star():
name_receive = request.form['name_give']
target_star = db.mystar.find_one({'name': name_receive})
current_like = target_star['like']
new_like = current_like + 1
db.mystar.update_one({'name': name_receive}, {'$set': {'like': new_like}})
return jsonify({'msg': '좋아요 완료!'})
@app.route('/api/delete', methods=['POST'])
def delete_star():
name_receive = request.form['name_give']
db.mystar.delete_one({'name': name_receive})
return jsonify({'msg': '삭제되었습니다!'})
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
AWSへの配備
@ダッシュボードリンク
https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2#Home :
*インスタンスの作成時に鍵ペアをダウンロード
원격 접속 시도
$ ssh -i 키페어경로 ubuntu@서버IP
initial_ec2 파일권한 부여하기
$ sudo chmod 755 initial_ec.sh
파일 실행하기
파일경로/initial_ec.sh
방법)
pip install 모듈명
예시)
pip install flask
pip install pymongo
실행하기
nohup python app.py &
종료하기
ps -ef | grep 'app.py' 중 해당파일을
kill -9 해당파일번호
Reference
この問題について(航海99辞書学習の概要), 我々は、より多くの情報をここで見つけました https://velog.io/@cslim0527/항해99-사전-학습-요약テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol