한 것
TIL
포트 포워딩
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
# 포트포워딩 후 다시 서비스 시작하면 포트번호 입력안해도 자동으로 접속 됨.
nohup
# 종료후 재시작 할 때도
nohup python app.py &
# -------------------------------------
# 강제 종료하는 법
# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep 'app.py'
# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값] # 운영체제 사용자이름 바로 옆이 pid값
정리
import requests # 스크래핑에 필요한 requests 패키지
from flask import Flask, request
from bs4 import BeautifulSoup # HTML 구조를 파악하는 데 도움주는 패키지
# 클라이언트가 api POST 요청 시 data로 url_give를 담아 요청했을 때 스크래핑 하기
url_receive = request.form['url_give'] # 여기 request는 api 요청할때 보낸 data:{url_give} 를 받기 위해 쓰는 메서드
headers = {'User-Agent' : '~'}
data = requests.get(url_receive, headers=headers) # 받은 url을 get으로 받은 뒤 data로 선언 -> <response [200]> 이런 식임.
soup = BeautifulSoup(data.text, 'html.parser') # 패키지로 data.text(띄어쓰기 그대로 되어있음)를 파싱 용이하게 바꿔준다.
something = soup.select('선택자') # 개발자도구에서 원하는거 찾은 뒤 우클릭해서 선택자 복사 가능하다.
# 태그와 속성값으로 찾는 방법
soup.select('태그명[속성="값"]')
# 한 개만 가져오고 싶은 경우
soup.select_one('위와 동일')
#---------------------------------------------------------
# MongoDB
from pymongo import MongoClient
client = MongoClinet('localhost', 27017)
db = client.dbtest
# 메서드는 TIL 0125 참조
#----------------------------------------------------------
# flask
from flask import Flask, render_template # render_template는 templates 폴더에 있는 HTML 파일을 불러오는 플라스크 내장함수
# 참고 -> static 폴더 이미지 불러올 때 <img src="{{ url_for('static', filename='rome.jpg') }}"/> 이 룰로