[내일배움캠프] #210914

이수영·2021년 9월 14일
0

MY TIL 

목록 보기
2/50

웹크롤링

가상환경을 만드는 이유 ?

  • 프로젝트 공구함과 같은 것 , 프로젝트에 필요한 라이브러리들을 모아놓은 것 , 프로젝트 폴더 venv 안에 라이브러리들을 넣어둠

크롤링이 가능한 이유 ?

  • 내가 이미 서버로부터 request로 데이터를 요청하고 받아온 데이터이기 때문이다
    beautifulsoup4 와 같은 라이브러리로 이 데이터를 솎아냄 (정리,분석)

크롤링방법

  • copy selector는 즉 선택자 , 내가 크롤링하고자 하는 정보가 어디 있는지 알려줌
  • ex) title=soup.select_one('#old_content > table > tbody > tr:nth-child(2) > td.title > div > a') 을 copy selector로 갖고와 이 정보를 사용가능하다.
  • ex) genie 음원 차트 크롤링
songs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
for song in songs:
    rank=song.select_one('td.number').text[0:2].strip()
    title=song.select_one('td.info > a.title.ellipsis').text.strip()

    artist=song.select_one('td.info > a.artist.ellipsis').text
    print(rank,title,artist)

DATABASE

  • MongoDB vs robo3t
    MongoDB는 내 눈에 보이지 않게 실행되는 데이터베이스이고 이것을 시각적으로 보여주는 것이 robo3t이다.
  • SQL vs NOSQL
    sql은 좀 더 정형화된 형태이고 nosql( MongoDB)은 더 유연하다.

Flask

  • Flask 프레임워크로 남이 짜준 틀 안에서 나는 서버를 만들 수 있다
  • 내가 app.py(서버)를 만들고 run 한 후 내 크롬 브라우저에 localhost:5000을 입력하여 접속하는 것이 로컬개발환경이다 . 내가 내 컴퓨터에서 다른 브라우저를 열어 서버를 돌리고 있는 것이다. 이렇게 하면 한대의 컴퓨터로도 실행이 가능하다.

웹서버와 웹브라우저

from flask import Flask,render_template
app = Flask(__name__)

@app.route('/')
def home():
   return render_template('index.html')

와 그냥 index.html로 접속하는 것은 무슨 차이점이 있을까 ?

  • 전자는 내가 서버에 요청을 해서 서버가 가지고 있던 index.html을 응답받은 것이고 후자는 내가 내 파일에 있던 index.html을 연 것이다
profile
Hongik Univ 💻

0개의 댓글