분류 전체보기(433)
-
안드로이드에서 AT 명령어 보내기
안드로이드 디바이스와 외부 모뎀을 USB(시리얼포트)로 연결한 후 상호간에 AT 명령어로 통신을 해야 하는 경우가 생겼다. PC에서는 뭐 여러가지 툴들도 있고 해서 어렵지 않지만 안드로이드에서 하는건 어떻게 해야 할지 몰라 난감했다. 우선 USB(시리얼) 드라이버가 사용하고자 하는 안드로이드에 로드 되어야 한다. 안드로이드가 드라이버를 지원하지 않으면 통신할 방법이 없다. 드라이버가 있다는 가정하게 command창을 띄워 adb shell로 안드로이드에 접속한다. 이후 USB(시리얼) 장치가 연결이 되었다면 ttyACM 혹은 ttyUSB 이름으로 된 장치가 보일 것이다. 그리고 ttyACM(ttyUSB)로 부터 응답을 받으면 출력하도록 cat 으로 연결을 한다. c:\> adb shell cat /dev..
2024.02.19 -
Python 채팅 프로그램
코드가 있으니 별다른 설명은 필요 없을것 같다. 다수의 클라이언트를 지원한다. 클라이언트에서 메시지를 보내면 서버가 받고 다시 클라이언트로 응답한다. 한번에 최대 1024 bytes 메시지 까지만 지원한다. 한글 메시지는 지원하지 않는다. 서버 import socket import threading IP = '127.0.0.1' # IP PORT = 5000 # PORT def start_server_echo(conn: socket, address: tuple) -> None: """ 클라이언트 메시지를 수신하고 메시지를 다시 클라이언트에 보낸다. @param conn: socket instance @param address: tuple(IP, pid) """ print("Connection from: ..
2024.02.01 -
리모트 디버깅 포트 사용중인 크롬 브라우저 여부 확인 방법
Selenium으로 자동화 하는 작업중 특정 remote debugging port로 실행된 브라우저 여부를 확인할 필요가 생겼다.하지만 실행된 브라우저를 찾을 방법이 딱히 떠오르지 않아서 매번 브라우저를 실행하고는 그 포트로 연결해서 작업후 창을 정리하도록 했다. 그랬더니 매번 불필요하게 빈 브라우저가 보였다가 사라지게 되었다. 방법을 고민하던 차에 netstat 명령어가 생각이 나서 문제를 해결할 수 있었다. netstat는 컴퓨터의 네트워크 및 포트에 대한 상태를 확인할 수 있는 명령어다. Remote debugging port로 9222를 지정했는데, 이 포트가 열려 있다면 크롬 브라우저가 실행되어 있는거고 없다면 브라우저를 실행시키면 된다. netstat로 9222 포트가 열려 있는지 확인하는 ..
2024.01.31 -
Selenium chrome 실행시 "Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다." 자동화 메시지 제거
Selenium으로 chrome을 실행하면 "Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다." 라는 팝업이 뜨는데 사용자가 봤을때엔 바이러스나 해킹이라고 생각 할수도 있겠다 싶었다. 찾아보니 chrome이 봇탐지를 하면 나오는 메시지라고 하며 이 정보가 서버로 전달되면 서버에서는 매크로가 돌고 있다고 판단하여 차단을 할 수도 있다고 한다. 이전 포스트에 내용이 있기는 한데, chrome 자체 옵션중 remote-debugging-port를 이용하면 문제를 해결할 수 있다. 절차 PC에 설치된 chrome 실행시 remote-debugging-port 옵션을 이용하여 포트 지정후 실행 Webdriver에 (1)에 사용된 포트로 debuggingAddress를 지정하여 실행 이후 (1)에..
2024.01.26 -
Requests --> Selenium 세션 쿠키 유지
웹사이트에 로그인 후 작업하는 것을 자동화 해야 한다. Selenium으로 로그인하면 되는데, 이 경우 id/ password가 유출될 수 있고 selenium은 post 방식의 api를 지원하지 않는다. 게다가 chrome을 실행해야 하기 때문에 실행 속도가 빠르지도 않다. 그래서 requests로 빠르게 로그인 하고 세션을 유지한채 chrome으로 전환하고 싶었다. 로그인을 유지하려면 세션 쿠키를 유지하면 되는데 쿠키에 대해서는 HTTP 쿠키를 참고하도록 한다. 추가로 쿠키에는 여러가지 attributes가 존재하며 모질라 웹사이트에 가면 attributes에 대해 자세히 알 수 있다. requests --> selenium # requests 로그인 url = 'xxx/login' params = ..
2024.01.26 -
Selenium 프로필 적용 및 창 제어
Selenium으로 자동화를 실행하다 보면 기존 chrome에서 사용하던 프로필을 사용해야 할때가 있다. 이때 chrome 주소창에 chrome://version을 입력하면 프로필이 어디에 있는지 확인할 수 있다. 프로필에 자세한 내용은 아래 링크를 참고하면 된다. User Data Directory Chromium Docs - User Data Directory User Data Directory Introduction The user data directory contains profile data such as history, bookmarks, and cookies, as well as other per-installation local state. Each profile is a subdirec..
2024.01.24