본문 바로가기

python

(15)
RSS(Really Simple Syndication)란? 블로그의 글을 RSS형태로 가져온다 RSS는 "Really Simple Syndication"의 약자로, 웹 사이트의 최신 업데이트 내용을 쉽게 구독하고 확인할 수 있는 피드 형식. RSS를 사용하면 사용자가 관심 있는 웹 사이트의 최신 정보를 한 곳에서 모아 볼 수 있으며, 이를 통해 새로운 콘텐츠를 신속하게 파악할 수 있다. 일반적으로 RSS 피드는 XML 형식으로 작성되어 있으며, 해당 웹 사이트에서 제공하는 최신 게시물의 제목, 요약, 링크 등의 정보를 포함합니다. 이 정보를 사용자가 자신의 RSS 리더(또는 RSS 패싱 라이브러리를 통해)에 추가하면 해당 웹 사이트의 최신 업데이트를 주기적으로 확인할 수 있다. 나는 이 RSS로 가져온것을 파이썬 프로그램에 사용하였다. 파이썬에서 RSS를 사용할..
[Python] 파일 입력 모듈 : fileinput fileinput fileinput 모듈은 파일을 입력으로 사용하는 데 유용한 기능을 제공하는 파이썬 표준 라이브러리 중 하나 이 모듈을 사용하면 여러 파일을 처리하고 파일의 행을 반복적으로 처리가 가능하다 이 모듈은 텍스트 파일을 처리하는 데 유용하고 파일의 각 줄을 처리하거나, 파일에서 특정한 문자열을 찾아서 변경하거나, 파일을 직접 수정하는 등의 작업을 수행하는 모듈이다 fileinput 모듈은 fileinput.input() 함수와 함께 주로 사용된다. 이 함수는 여러 파일을 처리하고 파일의 행을 반복적으로 처리할 때 유용, 일반적으로 for 루프와 함께 사용되어 파일을 한 번에 하나씩 처리하거나 수정하는 데 사용된다 나는 파일의 전채 내용 중 특정 조건에 맞는 줄만 수정하는데 사용하였다 카운트를..
URL parsing하는 법(urlparse) URL parsing 함수는 URL 문자를 각 구성 요소로 분리하거나 각 요소들을 하나의 URL로 합치는 기능을 한다. urlparse를 사용한다. from urllib.parse import urlparse parsed = urlparse("https://www.test.com:8000/%test/contents.html") print(parsed) # ParseResult(scheme='https', netloc='www.test.com:8000', path='/%test/contents.html', params='', query='', fragment='') 각각의 속성값은 index를 사용하여 접근한다.
mysql 대량 데이터 삽입 + pymysql scv파일 중 특정 컬럼 값들의 대량 대이터 삽입의 방법을 고민하고있다 pymysql을 사용하지 못해서 sql 파일을 만들고 파일을 서버에 올린뒤 DB에 저장하는 식으로 진행하였다 1. 다중 insert문을 사용 다중 insert문을 사용하였을 때의 문제점은 중복값의 처리를 하기위해 ON DUPLICATE KEY UPDATE를 사용할 수 없었다. 많은 데이터를 입력하기 때문에 파일 작성시 오류가 발생함 2. row당 1개의 insert문 사용 중복값 처리는 할 수 있지만 속도가 너무 느리고 1번과 마찬가지로 파일작성할때 오류가 발생할 수 있음 3. LOAD DATA INFILE문 사용 빠르게 데이터를 삽입할 수 있지만 중복값 처리가 불가능 하다 pymysql이 안되는게 연결시 timeout이 서버에서 직..
MYSQL 백업 mysql DB를 백업하기위해서 mysqldump를 사용하였다 $ mysqldump -u 유저명 -p DB명 > 아웃풋.sql 기존에는 DB의 table하나씩 백업을 진행하였지만 속도 이슈로 이 로직을 변경하였다 처음에는 $ mysqldump -u 유저명 -B DB명1,DB명2 ... > 아웃풋.sql 으로 진행하였지만 이것도 DB가 많아서 에러가 잘 발생하였다 mysqldump에 옵션에 -A, --all-database라는 옵션을 사용하였다 이 옵션을 사용하면 모든 DB를 백업을 진행한다 $ mysqldump -u 유저명 --all-database > 아웃풋.sql
02/19 정리 모듈(halo, schedule) 등 요즘 바빠서 바로바로 쓰지 못한다.... 급하게 기록해둔 내용을 바탕으로 작성하여서 많이 부족할수있다. schedule 프로그램이 일정시간에 자동으로 실행하는 내용이 업무 요청 사항이 있어서 스케줄러에 관해 알아보다가 schedule 모듈을 알게되었다 while문으로 프로그램을 계속 대기하다가 일정 시간이되면 실행하는 것이다. # schedule.every(20).seconds.do(run) #20초마다 run이라는 함수 실행 schedule.every().day.at(reserv_time).do(run) #매일 reserv_time마다 run함수 실행 schedule.cancel_job(run) #예약된 스케줄 취소 while True: print(f'프로그램 실행중..... 예약 시간 : 매일 {re..
02/16 response 데이터 처리(문자열 처리) 파이썬에서 request로 받아온 json 데이터 처리에서 많이 애를 먹었다 res=requests.get(url) 으로 받아오 response json데이터의 형식이 { { "resultCode":"0", "fromNo":"1", "nextFromNo":"2", "listCount":"20", "totalCount":"1368", "emptyList":"false", "formatedTotalCount":"1,368", "html":"\n\n\n\n\n \n\n\n\n \n2023.11.14. \n73 읽음\n\n\n\n\n \n\n \n시리즈 .... } 이러한 형태였는데 "html" 값을 빼와서 Beautifulsoup에 넘기려할때 '\'을 처리하지 못해서 soup=BeautifulSoup(dict..
02/13~02/15 정리 동적으로 생성된것은 requests를 사용 못한다. -> selenium사용 카페 크롤링을 진행할때는 프래임을 바꾸는 작업이 필요하다. driver.switch_to_frame('cafe_main') 새로운 창이 발생했을때 처리한 코드 driver.get(mo_url) original_window = driver.current_window_handle driver.implicitly_wait(10) try: WebDriverWait(driver,1).until(EC.number_of_windows_to_be(2)) all_windows = driver.window_handles new_window = [window for window in all_windows if window != original_wi..