본문 바로가기

코딩 연습/코딩배우기160

웹 브라우저 페이지를 자동으로 스크롤 해보기 (with 파이썬) 파이썬으로 selenium과 chrome webdriver를 사용하여 긴 웹 브라우저의 페이지를 자동으로 스크롤되게 하는 기능을 설명한다. 특히, 네이버 블로그의 경우 마우스를 내리면 계속해서 페이지가 스크롤되는데, 이에 대해 스크래핑(크롤링)할 때 유용하게 사용할 수 있다. 웹 브라우저 페이지 자동 스크롤링 ▷url을 입력 시 웹 페이지 스크롤하는 함수 import time import random from selenium import webdriver from selenium.webdriver.common.keys import Keys def webpage_scroll(url): options = webdriver.ChromeOptions() options.add_argument('--headless.. 2021. 12. 28.
블로그 글 내용 저장 중 이모지 '\U0001f970' 에러 발생 (파이썬) 블로그 글 내용을 파이썬으로 스크래핑(크롤링)하여 저장 중에 발생한 아래와 같은 에러 메시지( UnicodeEncodeError: 'cp949' codec can't encode character '\U0001f970' in position 1806: illegal multibyte sequence)를 조치하기 구글에서 찾아봤다. 이모지(emoji)로 인한 유니코드 인코딩 에러 블로그 글 내용을 저장하기 위해 아래와 같이 코딩했으나... 에러 메시지가 나왔다. with open(keyword + '/' + '블로그 본문 내용들.txt', 'a') as f: f.write(body_contents) 에러 메시지 중 '\U0001f970'를 찾아보니 이모지(emoji) 웃는 얼굴이라고 나왔다. Unicode.. 2021. 12. 26.
파이썬 selenium 라이브러리 - find_elements_by_* commands are deprecated. 최근 selenium이 업그레이드되어서, find_elements_by_* 구문 대신 find_elements() 구문을 사용하라는 경고 메시지가 노출되었다. 사용법은 큰 차이가 없는 듯... selenium 라이브러리 경고 메시지에 따른 구분 사용 방법 ul = driver.find_element_by_class_name('lst_total') lis = ul.find_elements_by_class_name('bx') 위 구문에서, 실행 결과는 정상적으로 나오는데 오류인지 경고인지 이상한 메시지가 아래처럼 나온다. UserWarning: find_elements_by_* commands are deprecated. Please use find_elements() instead warnings.warn.. 2021. 12. 25.
크롬 웹드라이버 '시스템에 부착된 장치가 작동하지 않습니다.' 메시지 python으로 selenium과 chrome webdriver를 사용해서 네이버 스크래핑 스터디 중에 '시스템에 부착된 장치가 작동하지 않습니다.'라는 아래와 같은 메시지가 출력되었다. 시스템에 부착된 장치가 작동하지 않습니다. driver = webdriver.Chrome('./chrome_driver/chromedriver.exe', options=chrome_options) DevTools listening on ws://127.0.0.1:49788/devtools/browser/80e9ee00-32ad-41cf-a228-7a615e0b9df9 [5568:14456:1225/132928.765:ERROR:chrome_browser_main_extra_parts_metrics.cc(226)] crb.. 2021. 12. 25.
네이버 등 웹 페이지의 쿠키(cookie)를 가져와서 저장하기 (with Python) 네이버 등 웹 페이지에서 로그인 상태를 유지하기 위한 쿠키를 추출해서 클라이언트(PC)에 저장하는 코딩 연습 내용이다. 이를 응용하면 저장된 쿠키를 header에 추가하여 서버에 전달하고 세션을 유지한 상태로 페이지 스크래핑(크롤링) 등을 할 수 있다. 웹 페이지의 모든 쿠키를 저장해보자 from selenium import webdriver def all_cookies(url): chrome_options = webdriver.ChromeOptions() # chrome_options.add_argument('--headless') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage.. 2021. 12. 25.
파이썬 pytube 오류 메시지 - AttributeError: 'NoneType' object has no attribute 'span' 파이썬 pytube 라이브러리 사용 시에 발생한 오류메시지 AttributeError: 'NoneType' object has no attribute 'span'에 대한 해결..? 유튜브 영상 다운로드 코딩 시 발생한 오류 메시지 - AttributeError: 'NoneType' object has no attribute 'span' 수년 동안 관심 있는 분야를 스터디를 할 때 clip으로 유튜브 영상을 받고 스마트폰이나 노트북에 받은 영상을 저장하여 도서관이나 스터디 카페 등에서 보곤 하였다. 그런데, 최근 clip을 통해 필요한 유튜브 영상을 받으면 .webm 확장자로 다운로드되고 실행을 하면 소리가 나오지 않는 현상이 나왔다. clip으로 유튜브 영상 한 개씩을 받으면 mp4로 받을 수 있으나 시.. 2021. 12. 19.
[파이썬 크롤링 연습] 쿠팡(Coupang) 상품 리스트 가져오기 쿠팡(Coupang)에서 상품 리스트 크롤링 해보기 쿠팡(Coupang) 검색란에 키워드를 입력(예로, 노트북)하면 많은 상품 리스트가 보인다. 이렇게 검색된 상품 전체를 파이썬 크롤링으로 가져오는 연습을 해보았다. import requests from bs4 import BeautifulSoup import pandas as pd def coupang_products(keyword, pages): baseurl = 'https://www.coupang.com' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/53.. 2021. 12. 12.
파이썬 pip 명령 에러 메시지 - ModuleNotFoundError: No module named 'pip' pip 명령 에러 메시지 - No module named 'pip' 가상환경에서 잘 사용하던 pip 명령이 업그레이드 이후 가상환경에서 python.exe -m pip install --upgrade pip가 아닌 pip install --upgrade pip 명령으로 업그레이드를 했는데, 이 명령에 어떤 문제가 있었던 건지 pandas 설치를 했는데 ModuleNotFoundError: No module named 'pip' 메시지가 계속 발생하였다. pip 버전을 확인했으나 동일한 에러 메시지가 발생함 (venv) D:\Ex_noviceCoding>pip --version Traceback (most recent call last): File "C:\Anaconda39\lib\runpy.py", li.. 2021. 12. 12.
파일명 일괄 변경하기 (with 파이썬) 파일명 일괄 변경 프로그램 만들어보기 알캡처 등의 프로그램으로 화면 캡처 자동 저장을 하는 경우, 또는 카메라 이미지인 경우 아래와 같이 파일명이 되어 있을 수 있다. 이미를 하드디스크 등에 저장하거나 블로그 등에 이미지를 업로드할 때는 관련 있는 이름으로 저장하거나 업로드를 해야 한다. 무료로 이미지 등의 파일명을 변경하게 해주는 프로그램도 있지만, 파이썬으로 간단하게 짜보았다. (하단에 PC용 프로그램 다운로드 링크 있음) 파이썬 파일명 일괄 변경 소스 import pathlib ## 파일명 변경 함수 def rename_file(filepath, filenames): # path = pathlib.Path('.') / 'rename' # pathlib.Path('./rename')과 동일 path .. 2021. 12. 6.
파이썬 Tkinter 처음부터 차근차근 따라 하면서 배워보기 파이썬 Tkinter는 파이썬으로 gui 프로그램을 만들 수 있도록 여러 컨테이너를 제공하는 라이브러리로 이를 배워두면 PC에서 실행할 수 있는 여러 응용 프로그램을 만들 수 있다. 그리고 tkinter는 button위젯, text위젯, frame위젯 등 모든 것이 위젯으로 구성되었다. 파이썬 Tkinter 모듈 따라 하면서 배우기 ■ Label() 위젯 ☞ tkinter 모듈의 Tk() 호출 ☞ pakc() : 윈도우 스크린에 보이게 하기 ☞ 아래로 위젯 배치 ▣ 그리드 활용 ☞ grid(row= , colume= ) 사용 시 ■ Button() 위젯 ☞ btn2 위젯은 DISABLED 시킴 ☞ 버튼 사이즈 변경 - padx, pady ☞ fg=color, bg=color, command=함수 호출 →.. 2021. 11. 24.