본문 바로가기

분류 전체보기

CSS 가상 셀렉터(Pseudo Selector) :active, :hover, :focus 가상 선택자(셀렉터)를 이용하면 HTML 요소의 상태에 따라서 해당 요소의 스타일을 다르게 적용할 수 있습니다. 대표적인 것이 hover, active, focus입니다. 아래의 예제처럼 사용할 수 있습니다. :hover 가상 셀렉터 :hover를 이용하면 마우스가 해당 요소 위에 있을 때 요소의 스타일 변경할 수 있습니다. 밑에 보이는 예제의 입력창에 마우스를 올려놓으면 색깔이 변경되는 것을 볼 수 있습니다. See the Pen :hover by hogni-seoul (@hogni-seoul) on CodePen. :active 가상 선택자 :active를 이용하면 사용자의 마우스가 해당 요소를 클릭하는 순간부터 떼는 순간까지 요소의 스타일 변경할 수 있습니다. 아래 예제의 입력창을 클릭해서 마우스를.. 더보기
파이썬 pandas, openpyxl 대신 csv 라이브러리로 엑셀 파일 만들기 파이썬으로 무언가 작업을 하고 나면 많은 경우 그 결과물을 다른 사람에게 엑셀의 형태로 제공해주곤 합니다. 이때 사용할 수 있는 여러 가지 라이브러리가 있습니다. 가장 쉽다고 생각되는 방법은 pandas dataframe의 to_excel 메서드를 사용하는 것입니다. 그다음으로 고려할만한 방법이 openpyxl과 csv 라이브러리를 사용하는 것입니다. 이번 포스팅에서는 csv 라이브러리를 이용해서 엑셀에서 열 수 있는 csv 파일을 만드는 방법을 알아보겠습니다. csv 라이브러리는 pandas, openpyxl과는 다르게 별도의 설치가 필요하지 않다는 장점이 있습니다. 또한 pandas에 비하면 그 용량이 매우 적습니다. 이는 tkinter 등을 사용해서 엑셀 파일로 결과물을 제공하는 gui 프로그램을 .. 더보기
책소개 #사이드 프로젝트 100 #부업으로 돈버는 100인의 이야기 추천 대상 - 직장(본업)을 그만두지 않으면서도 부업으로 돈을 벌고 싶으신 분 - 부업을 해야겠다는 막연한 목표를 가지고 있으신 분 추천 이유 - 본업이 있는 평범한 사람들이 어떻게 시간을 쪼개 수익을 창출했는지 그 경험을 간접적으로 체험할 수 있습니다. 사이드 프로젝트 100 본업을 그만두지 않으면서부업으로 추가 수입을 얻고 삶의 새로운 활력까지 얻을 수 있다면?!직장이 없어지는 시대,부업으로 경제적 자유와 재미를 찾은 100인의 부자와 만나라!『사이드 프로젝트 100』은 바쁜 삶을 사는 평범한 사람들이 하루 중 얼마의 시간을 쪼개 부수입을 창출하고 적성까지 살린, 때론 수억원의 큰돈을 벌어 삶을 ... www.yes24.com 어느 때 보다 사이트 프로젝트(부업)에 대한 관심이 많아진 것 같습니다. .. 더보기
파이썬 코드 흐름을 제어하는 pass, continue, break 조건문이나 반복문을 돌리다 보면 중간에 코드 흐름을 제어해야 할 필요가 있습니다. 예를 들어 특정 조건을 만족하면 코드 실행을 건너뛴다던가, 중단한다거나 등의 동작이 필요한 경우입니다. 이번 포스팅에서는 종종 헷갈리는 세 가지 흐름 제어문을 알아보겠습니다. 구분 설명 pass 아무것도 하지 않고 다음 코드를 실행 continue 다음 순서의 반복문(loop)을 실행 break 반복문(loop) 실행을 중단 예제 코드를 통해 각각을 알아보겠습니다. 다음과 같인 생긴 코드에 각각의 흐름 제어문을 넣어보겠습니다. 구구단 1단에서 3단까지를 만들었습니다. for i in range(1,4): for j in range(1,4): print(f"{i} x {j} = ", i * j) """ 1 x 1 = 1 1 .. 더보기
파이썬 Selenium을 이용해서 파일 업로드하기 Selenium을 이용하면 웹브라우저로 수행하는 여러 가지 작업을 자동화할 수 있습니다. 클릭, 검색, 로그인, 파일 업로드 등등의 처리를 모두 다룰 수 있습니다. 이번 포스팅에서는 파이썬의 셀레니움 라이브러리를 이용해서 파일을 업로드하는 방법을 알아보겠습니다. 예제로 파일을 업로드 해볼 사이트는 무료 이미지 변환 사이트입니다. 로그인이 필요 없습니다. https://convertio.co/kr/image-converter/ 파일을 업로드하는 방법은 파일 입력란에 send_keys 메서드를 사용해서 업로드할 파일의 경로를 입력하면 됩니다. 말이 좀 복잡하니 코드로 살펴보겠습니다. 파일 선택을 가능하게 하는 input 태그 요소는 저장 장치에서 파일 선택할 수 있습니다. 속성(attribute)의 값에 따.. 더보기
파이썬 웹크롤링 iframe 페이지 Selenium으로 처리하는 방법 파이썬에서 Selenium을 이용해서 웹크롤링을 한다면 대개 다음과 같은 코드를 씁니다. # 라이브러리 불러오기 from selenium import webdriver from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup # 특정 웹페이지에 접근하기 driver = webdriver.Chrome() driver.get("웹페이지 주소") driver.implicitly_wait(10) # HTML 코드 가져오기 r = driver.page_source # 파싱 soup = BeautifulSoup(r, "html.parser") # 이후 데이터 수집 작업 대부분의 웹페이지는 이것으로 충분합니다. 하지만 만약 지금 내가 .. 더보기
파이썬 람다(lambda) 함수 파이썬으로 코딩을 하다 보면 종종 람다 함수를 사용할 때가 더 편한 경우가 있습니다. 여러 줄의 함수로 작성해야 할 것을 단 한 줄의 함수로 정리할 수 있기 때문입니다. 하지만 람다 함수를 처음 보면 뭔가 이상하게 생겼다는 생각도 들고 낯선 느낌이 듭니다. 사실 알고 보면 람다 함수는 그저 다른 종류의 함수입니다. 람다 함수를 사용할 때는 이렇게 써주면 됩니다. lambda 파라미터: 표현식 예를 들어 두 개의 숫자를 더한 뒤 그 값을 반환하는 다음과 같은 함수가 있습니다. def sum(x, y): return x + y print(sum(4,5)) # 9 위의 함수를 람다 함수를 이용해서 표현하면 아래와 같습니다. print((lambda x, y: x + y)(4,5)) # 9 또는 람다 함수를 변.. 더보기
pyinstaller 튜토리얼 소개: py 파일을 exe 파일로 변환하기 pyinstaller 사용이 처음이라 상당히 애를 먹었습니다. 세 가지 어려움이 있었는데요. 1) 특정 파일을 binary형태로 exe 파일에 포함시키는 것 2) RuntimeError: maximum recursion depth exceeded while calling a Python object 처리 3) 완성된 exe 파일의 속도 문제(너무 느림) 3번은 아직 해결 중이지만 위의 1, 2번은 해결했습니다. 해결에 도움이 된 참고 자료를 공유합니다. --add-binary "파일" 유튜브 영상과 stackoverflow에서 방법을 찾을 수 있었습니다. --add-binary에 대한 상세 내용은 링크를 참고해주세요. pyinstaller -w -F --add-binary "C:\파일명.exe;." 파일.. 더보기