본문 바로가기

프로그래밍/Python57

[python,tistory,github actions]매일 구글 트랜드 키워드 Top 10을 사용하여 뉴스글 자동 생성하기 -1(계획) 이번에는 간단한 코드들을 조합해서 구글 트랜드 Top 10 키워드들을 가져오고, Naver API를 사용해서 해당 키워드를 검색한 뉴스 정보들을 가져온다, 이후 가져온 뉴스를 Tistory에 업로드하기 적합한 html형식으로 변경하고, 업로드한다. 이러한 일련의 과정들을 python코드로 전부 자동화 하고 일정 주기마다 반복 실행되게 한다. 추가로 해당 과정들이 PC가 꺼져도 계속 작동되게 github의 actions를 사용해서 알아서 업데이트 하려고 한다. 전체적인 프로세스는 다음과 같다. 아주 심플하게 만들어 보려고 한다. 끝. 2023. 10. 4.
[Django]chatgpt와 함께하는 dJango 웹페이지 만들어보기 -1 python과 flask를 사용해서 간단한 웹사이트를 만들고 외부 API를 사용하여 데이터 흐름을 만들어 보았다. php도 사용해서 데이터를 화면상에 원하는 모양으로도 출력해보았다. 문제는 flask가 나쁜 웹프레임워크는 아니지만, 사용자 인증, 세션 관리, 폼 처리, 데이터베이스 관리 등의 기능을 일일히 구현해주거나 코드로 작성해야 하는게 생각보다 따져야할게 많다. 무엇보다 보안에 관련하여 미리 세팅되어 있는것들이 많아 관리하기가 편하다. Django는 MVC(Model-View-Controller) 아키텍처를 기반으로 하는데, 애플리케이션(웹)을 3가지 부분으로 나눠서 만들어진다. 1. 모델(Model): 데이터베이스와 관련된 로직을 처리하는 부분. 데이터베이스 테이블을 정의하고, 데이터를 검색, 저.. 2023. 9. 22.
[selenium 셀레니움]카X오 로그인 하기 저번엔 네이버 로그인을 selenium을 활용하여 로그인 하는 방안을 테스트 해보았다. https://mrnoobiest.tistory.com/201 [selenium]네이버 로그인시 자동방지 이미지 안뜨게 우회하기 거의 대부분의 사이트는 로그인 할때 네이버,구글,페이스북 같은 SNS 로그인을 많이 실행합니다. 로그인 유지시 크롬에 로그인 정보가 저장되어 별도로 로그인 작업을 진행할 필요가 없지만, 셀 mrnoobiest.tistory.com 요번엔 카X오 로그인을 시도해보려고 한다. kaXo login api를 사용해서 자동으로 로그인하는 방법도 있지만, selenium을 사용해서 로그인을 하려는 것이니 생략한다. API를 사용해서 로그인 할 경우 아래 링크에서 도움을 받으면 될 것 같다(굉장히 상세하.. 2023. 9. 15.
[selenium 셀레니움]네이버 로그인시 자동방지 이미지 안뜨게 우회하기 거의 대부분의 사이트는 로그인 할때 네이버,구글,페이스북 같은 SNS 로그인을 많이 실행합니다. 로그인 유지시 크롬에 로그인 정보가 저장되어 별도로 로그인 작업을 진행할 필요가 없지만, 셀레니움으로 열게된 크롬은 로그인 정보가 없기때문에 로그인 작업을 진행해야 합니다. 그중 네이버 로그인을 할때 많이 발생할 수 있는 경우를 따져 코드를 작성하였다. + 로그인 방지 이미지가 뜨지 않도록 하는 코드도 추가 다음은 로그인 작업 진행 시 꼭 필요한 기능이다. 1) 네이버 로그인 버튼을 클릭 시 새로운 탭에서 로그인을 해야하는 경우(driver2생성 필요) 2) 우회 방지가 발생하지 않도록 해야 한다. from selenium import webdriver import pyautogui from selenium... 2023. 9. 13.
[selenium]셀레니움 설치시 chrome driver를 못 찾을때 beautifulsoup(bs) 도 좋은 라이브러리이지만 특정 액션을 해야 하거나 bs가 읽지 못하는 페이지의 경우는 대부분 셀레니움을 사용한다. 셀레니움을 제대로 활용하기 위해서는 크롬드라이버(chromedriver)가 필수인데, 보통은 구글링으로 자신이 사용하고 있는 크롬 버전을 확인후 해당하는 크롬드라이버를 다운로드하여 사용한다. 크롬창의 URL에 chrome://version 를 입력하면 크롬 버전을 본인 PC의 OS와 함께 확인할 수 있다. 문제는 위의 버전인 116의 경우 구글링을 하여도 찾을 수가 없다는 것이다. 보통은 https://chromedriver.chromium.org/downloads/version-selection에서 찾을 수 있다. 최신 버전의 경우 https://google.. 2023. 9. 13.
[Chromedriver]unknown error: DevToolsActivePort file doesn't exist selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) chromedriver를 사용하여 selenium을 실행시켜봤는데, 위 에러가 발생하였다. from selenium import webdriver chrome.. 2023. 7. 11.
[Python]global 변수 선언하기 python코드가 너무 길어지면 코드 관리하기도 힘들고, 에러가 발생하면 추적하기 힘들다, 보통은 함수를 사용하고 여기서 나아가면 .py를 새로 만들어서 import로 새로 생성한 라이브러리를 불러와서 처리하기도 한다. 잘만하면 아주 간결하게 코드를 만들 수 있고, 후임에게 전달할때도 쉽게 전달이 가능하다. 하지만 이렇게 하다보면 정말 많은 함수들이 생성되고, 함수에 상관없이 session처럼 사용자가 항상 들고다니는 변수가 있을 수있다. 이럴때 사용하는 것이 global 변수 == 전역 변수 이다. 전역변수 "global 변수명"으로 설정하는 전역 변수를 함수에 상관없이 코드자체에서 항상 들고 다니는 변수라고 생각하면 된다. 원래 함수 안에서 지정된 변수는 return없이는 함수 밖에서 쓸수없다. Na.. 2023. 5. 25.
zipfile.ZipFile로 압축해제시 폴더안에 있는 파일은 어떻게 가져오는지 zipfile로 어떤 압축파일을 해제할때 .zip 파일내에 또다른 폴더가 있고 그안에 또다른 폴더가 있는 상황이였다, 이때 원하는 파일만 추출하는 방법을 알아봤는데, 결론은 다음과 같다. 1) 압축을 해제한다. 2) 압축 해제 후 해당 경로의 파일을 os.rename으로 이동한다. 3) 끝. 딱, 그 부분만 압축해제를 하고 싶은데 도저히 방법을 모르겠다.chatGPT도 이상한 얘기만 한다 ㅠㅠ 다음은 예시이다. import os zip_file_path = "압축파일의 경로.zip" #ex) ./my_zipfile.zip extract_dir = "압축해제되는 파일의 위치" #ex) ./folder/location with zipfile.ZipFile(zip_file_path, 'r') as zipObj.. 2023. 3. 14.
[요즘 핫한]ChatGPT를 python에서 사용하는 방법 ChatGPT 사용 방법 ChatGPT는 OpenAI에서 제공하는 대규모 언어 모델 중 하나로, 다양한 자연어 처리(NLP) 태스크에 사용할 수 있습니다. ChatGPT를 사용하여 대화형 인터페이스를 구현하거나 텍스트 생성 등의 작업을 수행할 수 있습니다. 아래는 ChatGPT를 사용하는 방법입니다. 1. 패키지 설치 ChatGPT를 사용하기 위해서는 먼저 필요한 패키지를 설치해야 합니다. Python 3.x 버전을 사용하는 경우, 아래와 같이 명령어를 실행하여 패키지를 설치할 수 있습니다. pip install openai 2. API Key 발급 ChatGPT를 사용하기 위해서는 OpenAI API Key가 필요합니다. API Key를 발급받으려면 OpenAI 홈페이지에 회원가입을 하고, API Ke.. 2023. 2. 15.