Memo/Python
-
[Selenium] 열린 브라우저에서 크롤링 (크롬 디버깅 모드)Memo/Python 2024. 7. 6. 14:19
1. 크롬 디버깅 모드 실행# 실행창(Win + R)에서 실행C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir="C:/ChromeTEMP"# 또는C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir="C:/ChromeTEMP"# Bat 파일로 제작해 두면 편리하게 실행 가능# 또 다른 방법cd C:\Program Files\Google\Chrome\Application.\chrome.exe --remote-debugging-port=9222 --u..
-
[Selenium] Captcha 이미지 저장. 요소 캡쳐 저장하기Memo/Python 2024. 7. 6. 14:12
Captcha 이미지와 같이 보안 등의 문제로 웹상의 이미지를 파일로 저장하기 어려운 경우가 존재한다.이럴 경우 크롬의 캡쳐 기능을 이용해 원하는 이미지를 손쉽게 저장할 수 있다.img = driver.find_element(By.XPATH, "요소") # 이미지 요소 찾기img.screenshot('image.png') # 이미지 요소 저장 How to capture the screenshot of a specific element rather than entire page using Selenium Webdriver?Currently I'm trying to capture a screenshot using the Selenium WebDriver. But I can only obtain the w..
-
[Selenium] 요소를 찾지 못하는 경우, frame 안의 요소 가져오기Memo/Python 2024. 3. 4. 19:57
평소와 같은 방법으로 페이지의 요소를 가져오려 했다. 그런데 아무리 요소를 검색하여도 "no such element: element not found" 문구가 출력되며 요소를 가져올 수 없었다. 검색해 본 결과 frame(iframe, frameset) 안의 요소를 가져오기 위해서는 frame 안으로 이동하여 요소를 검색해야 했다. frame = driver.find_element(By.TAG_NAME, "frame") # 프레임 요소 선택 driver.switch_to.frame(frame) # 프레임 전환 위와 같이 프레임을 전환해 주니 평소와 같이 요소를 가져올 수 있었다. Selenium에서 #document 안으로 들어가기 Selenium을 이용해 크롤링 하다보면 iframe 안의 내용은 가져오..
-
[SQLAlchemy] declarative_base() function is now available as sqlalchemy.orm.declarative_base(). 경고 해결Memo/Python 2024. 2. 19. 17:32
⚠️ 문제 Python 프로젝트를 실행하는 과정에서 아래와 같은 SQLAlchemy 경고 문구가 발생하였다. MovedIn20Warning: The ``declarative_base()`` function is now available as sqlalchemy.orm.declarative_base(). (deprecated since: 2.0) (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9) 💡 원인 'declarative_base' 함수를 import 하는 과정에서 이전 방식을 사용하여 발생한 문제였다. ✅ 해결 아래와 같이 import문을 수정해 해결할 수 있었다. from sqlalchemy.ext.declarative import de..
-
[Python] 'utf-8' codec can't decode byte 0xbe 에러 해결Memo/Python 2023. 2. 17. 16:47
파이썬에서 한글이 포함된 print문을 실행할 때 아래와 같은 오류가 발생하였다. SyntaxError: Non-UTF-8 code starting with '\xbd' in file ... 또는 SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xbe in position 0: invalid start byte 다음과 같이 주석이 소스코드 제일 상단에 작성하면 해결할 수 있다. # coding=euc-kr 처음에는 utf-8을 입력했는데, 두 번째 에러가 계속 발생하여 검색해 보니다, utf-8이 아닌 euc-kr을 입력해 해결할 수 있었다. PEP 263 – Defining Python Source Code Encodings | peps.p..
-
[Python] 텔레그램 API로 메시지 전송 방법 (마크다운, 이모지, 버튼)Memo/Python 2023. 2. 13. 22:42
# 텔레그램 메시지 전송 기본 API 구조 https://api.telegram.org/bot/sendMessage?chat_id=&text=안녕 # 파이썬에서 json 형식으로 메시지 보내기 import requests data = {"chat_id" : , "text": "안녕"} url = f"https://api.telegram.org/bot/sendMessage?" res = requests.post(url, json=data) 텔레그램 API로 채널에 메시지 보내기 · Wireframe 파이썬에서 텔레그램 API를 사용하여, 특정 채널에 메시지를 보내는 방법을 알아봅시다. API를 통해서 메시지를 게시하려는 채널이 있다면, 텔레그램에서 새로 봇 하나를 만들고, 이 텔레그램 봇 soooprmx...
-
[Django] 템플릿(html)에서 파이썬 enumerate 사용Memo/Python 2023. 1. 30. 20:45
Django 템플릿에서 파이썬 enumerate 기능을 사용하려면 다음과 같이 코드를 for문 내부에 작성한다. {% for n in network %} {{ forloop.counter }} {% endfor %} 위 코드는 1부터 시작하는 코드이다. 만약 파이썬의 enumerate 처럼 0부터 시작하고 싶다면 아래처럼 'counter'뒤에 0만 붙여주면 된다. {% for n in network %} {{ forloop.counter0 }} {% endfor %} how to run this code in django template this is my code : {% for i,j in enumerate(a) %} {{i}} ,{{j}} {% endfor%} but , it show a error..
-
[Selenium] 요소 위치로 스크롤 이동하기Memo/Python 2023. 1. 25. 16:55
selenium으로 요소(element)를 클릭해야 하는 상황에서 다른 요소가 해당 위치를 가리고 있거나, 페이지 아래에 위치해 클릭이 되지 않는 경우가 있다. 이럴 때는 클릭하려는 요소가 가려지지 않도록, 스크롤을 해당 요소의 위치로 이동하면 해결할 수 있다. 그러나 스크롤을 요소의 위치로 이동하기 위해서 JavaScrip의 'scrollIntoView'를 사용하는데, 여기서 문제는 스크롤을 요소 최하단에 맞춰 이동한다는 것이다. 즉 이번에는 요소가 스크롤보다 위에 존재하여 동일하게 클릭을 할 수 없는 상황이다. 그래서 원하는 요소를 페이지 중앙에 위치 하도록 해야하는데, 이럴 때는 scrollIntoView에 옵션 하나를 추가하면 해결할 수 있다. driver.execute_script("argume..