2022-02-04 TIL

yeopto·2022년 2월 4일
0

TIL

목록 보기
24/24
post-thumbnail

한 것

  1. Chapter 1~5 전체 정리, 복습

TIL

  1. 포트 포워딩

    • 5000포트에서(flask) 웹 서비스가 실행되고 있다. 접속하려면 포트번호를 :5000이라고 붙여야한다. http 요청은 80포트가 디폴트값이라 안 붙여도 연결이 됨. 포트 번호를 입력하지 않아도 자동으로 접속되기 위해선 80포트로 오는 요청을 5000포트로 전달하게 해주는 포트포워딩을 사용하면 된다.
    • 포트포워딩 룰
    sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
    
    # 포트포워딩 후 다시 서비스 시작하면 포트번호 입력안해도 자동으로 접속 됨.
  2. nohup

    • 원격접속이 종료되면(터미널을 나가서 SSH 접속을 끊으면) 프로세스가 종료되면서 서버가 돌아가지 않는다. 접속 끊어도 서버를 돌아가게 하려면 nohup을 사용하면 됨.
    # 종료후 재시작 할 때도
    
    nohup python app.py &
    
    # -------------------------------------
    
    # 강제 종료하는 법
    
    # 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
    ps -ef | grep 'app.py'
    
    # 아래 명령어로 특정 프로세스를 죽인다
    kill -9 [pid값] # 운영체제 사용자이름 바로 옆이 pid값
  3. 정리

    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') }}"/> 이 룰로
profile
https://yeopto.github.io로 이동했습니다.

0개의 댓글