Backend/Python25 [Python] Selenuim 스크롤 조작하기 Python 으로 크롤링을 진행할 때, 간혹 스크롤의 존재로 인해 원하는 정보 모두를 크롤링 하기 어려울 떄가 있다. 예를 들면, 페이지 첫 화면에서 모든 정보를 랜더링 하지 않고, 스크롤을 아래로 내림으로써 추가적으로 컨텐츠를 불러오는 페이지가 있다. 이 때 전체 페이지 요소를 확인하기 위해서는 스크롤이 더 이상 내려가지 않을 때 까지 내리는 작업이 필요하다. from selenium import webdriver browser = webdriver.Chrome() browser.get(url) # 크롤링 하기 위한 url 입력 # 현재 스크롤 위치를 저장 last_height = browser.execute_script("return Math.max( document.body.scrollHeight,.. 2024. 2. 1. [FastAPI] AWS DB - MySQL 연결하기 https://fastapi.tiangolo.com/tutorial/sql-databases/#create-the-relationships SQL (Relational) Databases - FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production fastapi.tiangolo.com 처음에는 하나의 DB (MongoDB)를 사용하여 작업을 하고자 구상했지만 연결된 데이터 관리와 관계형 데이터베이스 사용 경험을 위해 AWS에서 DB를 하나 생성했다. 가장 먼저, SQL 사용을 위한 패키지를 설치한다. python3 -m pip install sqlalchemy 초기 설정은 가이드 문서 그대로 .. 2023. 12. 20. [FastAPI] Project Levup - .env (dotenv) 적용하기 프로젝트 버전을 저장 및 다른 기기에서 이어서 작업을 할 수 있도록 github에서 작업을 진행하는데 DB 연결 정보가 있다보니 commit 을 하기 전 비밀번호를 실제와 다른 것으로 저장한 후에 진행했다. 지금은 가려야 하는 것은 DB 정보 밖에 해당하지 않아서 번거롭기는 하지만 잊어버리지 않을 정도는 되지만 민감 정보가 많아지고, DB 연결이 더 많아지는 경우에 하나 하나 관리하기 어려워 진다는 문제가 있다. 이를 위해서 민감 정보를 모아두는 파일을 따로 만들고 그곳에 민감 정보를 저장, gitignore 파일에 포함시켜 commit에서 제외시킨다. 먼저, .env 파일을 불러올 수 있도록 패키지를 설치한다 python3 -m pip install python-dotenv 그 후 프로젝트 폴더 내 ... 2023. 11. 30. [FastAPI] Project Levup - 메모 수정 & 삭제 기능 만들기 https://chunws13.tistory.com/52 [React] Project Levup - Axios 활용하기 백엔드에서 구현한 사항 : 메모 만들기, 메모 조회하기 백엔드에서는 로그인이 완료되면 토큰을 발급하고, 토큰과 함께 메모 조회 요청을 하면 해당 ID로 작성한 메모를 가져오도록 구현했다. 먼 chunws13.tistory.com 프론트엔드에서 메모 읽기와 쓰기 기능을 받아서 구현을 완료했으므로, 메모 수정 기능을 가진 api를 설계해 본다. 클라이언트에서 메모 id와 내용을 전달해 주면 memo db에서 id를 조회하여 저장된 내용을 바꾸면 될 것이다. 구현을 위해 클라이언트 측으로부터 받아야 하는 정보는 [ 메모 id, 수정할 내용, 로그인 토큰] 으로 총 3가지이다. 수정할 내용은 .. 2023. 11. 29. [FastAPI] Project Levup - 서비스 구조화하기 기능을 두개만 만들었는데도 벌써 main.py 파일 내 코드가 너무 많아졌다. express로 서비스를 만들었을 때도 기능별로 분리하는 작업을 했었는데 FastAPI에도 비슷하게 하는지 궁금해서 사이트를 찾아봤다 https://fastapi.tiangolo.com/tutorial/bigger-applications/ Bigger Applications - Multiple Files - FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production fastapi.tiangolo.com 공식문서에 따르면, router / models 등으로 나눠서 분리하는것으로 보이는데, express 로 진행할 때 .. 2023. 11. 18. [FastAPI] Project Levup - 메모 기능 만들기 https://chunws13.tistory.com/46 [FastAPI] Project Levup - 회원가입과 로그인 기능 만들기 개인적으로 사용할 용도이긴 하지만, 주변 사람들에게 소개하면서 사용을 권장하기 위해 간단한 회원 가입 기능을 만들어 두려고 한다. 회원 가입 기능을 만들기 전 몇 가지 패키지 설치가 필요 chunws13.tistory.com 회원가입, 로그인 기능이 완료되었으므로 이어서 메모 기능을 넣을 차례. 아직 DB 연결 하기 전 단계이므로 회원가입 테스트 했던 것과 같이 Fake DB를 사용하여 작동 여부 테스트를 해보자. 1. 코드 @app.get("/api/memo") def get_memo(): return memo_db @app.post("/api/memo") def cre.. 2023. 11. 16. 이전 1 2 3 4 5 다음