본문 바로가기

분류 전체보기

파이썬 Selenium ActionChains를 사용해서 웹사이트 자동 제어하기 ActionChains 기능을 사용하면 여러 개의 동작을 체인으로 묶어서 저장하고 실행할 수 있습니다. 마우스 이동, 클릭, 키보드 누름과 같은 기본 동작 이외에도, 마우스 커서를 특정 위치에 올려놓거나, 드래그 앤 드롭과 같은 복잡한 동작도 가능합니다. 많이 쓰이는 기본 동작 동작 코드 element로 마우스 이동 ActionChains(driver).move_to_element(ref) element 마우스 클릭 ActionChains(driver).click(ref) element 키보드 입력 ActionChains(driver).send_keys_to_element(ref, keys) 키보드 입력 ActionChains(driver).send_keys(keys) 위와 같은 동작들을 체인으로 묶어서.. 더보기
파이썬으로 텔레그램 봇 만들기(1): 봇이 할 수 있는 일과 한계점, 생성하기 Telegram Bot이란 - 텔레그램에서 봇이란 유저이 아닌 프로그램에 의해 운영되는 계정으로 유저의 아이디와 동등한 개체입니다. - 유저는 봇과의 대화창을 열거나 채널에 초대하여 메시지, 커맨드 라인, 인라인 요청 등을 보냄으로써 봇과 상호작용 할 수 있습니다. - 봇은 유저의 메시지를 읽을 수도 있고 메시지를 쓸 수도 있습니다. Bot이 할 수 있는 일 - 알림 (축구 소식, 뉴스, 미세 먼지 알림, IMAX 영화관 오픈 알림) - 검색 (특정 사이트 게시물 검색 등) - 채널 관리 - 게임 - 만들기에 따라서 이 외에도 무엇이든 할 수 있습니다. 봇 생성하기 텔레그램 봇을 생성하기 위해서는 우선 텔레그램에 가입한 뒤, BotFather에게 생성 요청을 해야 합니다. 앞으로는 이 봇 파더가 만들어준.. 더보기
[파이썬 웹크롤링] selenium이 좋은 이유, 셀레니움은 왜 도움이 되나 웹크롤링을 하다 보면 여러 가지 어려운 상황을 마주치게 됩니다. 대표적인 상황은 다음과 같습니다. - 해당 웹사이트가 프로그램을 통한 접근 허용하지 않는 경우 - 해당 웹사이트가 로그인을 요구하는 경우 - 해당 웹사이트가 동적 웹페이지로 구성되어 있는 경우 이런 경우에는 requests 라이브러리만으로 해결하기에는 쉽지 않습니다. 이럴 때 상황을 해결하는 가장 손쉽고 효과적인 방법이 바로 selenium을 이용하는 것입니다. 셀레니움이란 selenium은 웹사이트 테스트를 위한 도구로 브라우저 동작을 자동화할 수 있습니다. 셀레니움을 이용하는 웹크롤링 방식은 바로 이점을 적극적으로 활용하는 것입니다. 프로그래밍으로 브라우저 동작을 제어해서 마치 사람이 이용하는 것 같이 웹페이지를 요청하고 응답을 받아올 .. 더보기
정적 웹페이지, 동적 웹페이지는 뭘까 이번에는 정적 웹 페이지와 동적 웹 페이지에 대해서 알아보겠습니다. 특히 웹크롤링에 관심이 있으신 분이라면 알아두면 도움이 됩니다. 정적 웹 페이지 (static web pages) 정적 웹 페이지는 언제 접속해도 같은 응답을 보내줍니다. 일단 HTML, CSS, JS 파일 등이 서버에 업로드되면 개발자가 수정하기 전까지 매번 같은 파일을 브라우저에 건네줍니다. 즉, 웹 서버가 정적 웹 페이지에 대한 요청을 받은 경우 서버는 추가적인 처리 과정 없이 클라이언트에게 응답을 보냅니다. 예를 들어 회사나 개인의 소개 페이지가 정적 웹 페이지의 좋은 예시입니다. 동적 웹 페이지 (dynamic web pages) 웹 서버가 동적 웹 페이지에 대한 요청을 받은 경우 서버는 추가적인 처리 과정 이후 클라이언트에게 .. 더보기
[파이썬 pandas 기초] 데이터프레임 결측 값 확인하는 방법: isna(), notna() pandas dataframe으로 데이터를 다루다 보면 데이터 중 일부가 누락되어있는 경우가 종종 있습니다. 오늘은 누락된 데이터가 존재하는지 확인하는 방법을 알아보겠습니다. dataframe.isna() 이 메서드는 데이터프레임 내에 결측 값을 확인하여, 그 결과를 True 또는 False로 반환합니다. NA, None, numpy.nan은 True 값에 해당하고, 그 외 나머지는 False에 해당합니다. 샘플 데이터프레임을 만들어서 확인해 보겠습니다. df = pd.DataFrame({'name': ['Anne', 'Olaf', 'Ralph'], 'age': [4, 7, np.nan], 'hobby': [None, 'swimming', 'dance']}) df """ nameagehobby 0Anne.. 더보기
파이썬 Selenium 네이버 로그인 자동입력 방지(캡차) 피하기 파이썬에서 셀레니움 라이브러리를 이용하면 손쉽게 로그인이 필요한 웹사이트도 접근할 수 있습니다. 다만 종종 문제가 되는 것이 캡차(captcha)에 걸리는 경우입니다. 오랜만에 네이버를 selenium을 통해서 들어가려고 했더니 로그인 자동 입력 방지에 걸렸습니다. 방법을 찾아보니 생각보다 간단하게 해결할 수 있었습니다. 로그인 자동 입력 방지에 걸리는 방법 제목 처음에 사용했던 코드입니다. 대부분의 사람들과 마찬가지로 send_keys() 메서드를 이용하여 로그인을 시도했습니다. from selenium import webdriver import time # 크롬 브라우저를 이용해서 네이버에 접근합니다. driver = webdriver.Chrome() driver.get('https://www.nav.. 더보기
[파이썬 pandas 기초] 데이터프레임의 데이터 타입 바꾸기: astype() pnadas dataframe을 다루다 보면 데이터 타입을 변경해야 할 때가 있습니다. 오늘은 그 방법을 알아보겠습니다. DataFrame 데이터 타입을 바꾸는 두가지 방법 코드를 보면서 어떤 결과가 나오는지 살펴보겠습니다. 우선 데이터프레임을 만들어줍니다. # 라이브러리를 불러옵니다. import pandas as pd # 샘플 데이터프레임을 생성합니다. df = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]}) df """ col1col2 013 124 """ df의 데이터타입을 확인하겠습니다. int 정수 타입인 것을 알 수 있습니다. print(df.dtypes) """ col1 int64 col2 int64 dtype: object """ float로 바꿔보겠습.. 더보기
[python pandas 기초] DataFrame의 속성: index, columns, shape, dtypes 등 파이썬을 이용해서 코딩을 하다 보면 많이 사용하는 라이브러리 중 하나가 바로 판다스입니다. 오늘은 pandas dataframe을 활용할 때 알아두면 도움이 되는 기초 속성 9가지를 알아보겠습니다. 코드 실습하기 # 라이브러리 불러오기 import pandas as pd # 샘플 데이터프레임 만들기 df = pd.DataFrame({'Animal': ['Falcon', 'Falcon','Parrot', 'Parrot'], 'Max Speed': [380., 370., 24., 26.], 'Weight': [1.5, 1.4, 2., 1.9]}) # 출력하기 df """ AnimalMax Speed Weight 0Falcon380.0 1.5 1Falcon370.0 1.4 2Parrot24.0 2.0 3Par.. 더보기