[Python] Selenium 스크롤 클릭해서 수동으로 내리기

프로그래밍/Python 2022. 1. 16. 16:36

Selenium으로 아버지 업무 자동화를 도와드리면서 저기 위 사이트 레이아웃 처럼 되있는 곳의 내부 스크롤(Inner Scroll) 을 내려야 하는 상황이 생겼습니다. 저 내부 스크롤을 내리면 스크롤 왼쪽에 보이는 표가 동적으로 로딩되면서 보여지는데 저 스크롤을 살짝식 내리면서 동적 테이블(Dynamic Table) 의 요소를 로딩하고 데이터를 가져오는게 목표였습니다. 그런데 보통 Selenium에서 스크롤을 내리는 방법을 할때 직접 클릭하는 방법을 사용하는게 아니라 JS를 직접 execute시켜서 내리는 방법이 대부분입니다. 이게 가장 좋은 방법이기도 하구요. 그런데 문제는 지금 제 Selenium 환경이 사이트 특성상 IE Driver을 사용하고 있고 자바스크립트로 내리면 화면은 내려가는데 JS로 ..

Article Thumbnail
[Python] PyQt5 학습 정보, 비동기 작업, 쓰레드 작업 등 정보 모음

프로그래밍/Python 2022. 1. 14. 18:05

PyQt5 쓰레드 이용하여 비동기 작업으로 GUI 응답없음 방지하기 (Best Example) https://ybworld.tistory.com/39?category=929856 [Python/파이썬] PyQt5 사용시 필요한 쓰레드 개념 이해 : 파이썬 GUI 응답없음 해결 방법 - 2 ※ 이 글을 쓰는 사람은 SW 비전공자입니다. ※ 개인 공부를 위해 정리하는 글이며, 작성한 코드들은 효율성, 깔끔함(?) 등과는 거리가 멀 수 있습니다. 1편 : 2021.03.06 - [코딩/Python] - [Python/파이썬] ybworld.tistory.com Pyside6에서 Material(Modern) Design하기 https://www.youtube.com/watch?v=Jn0PpzB14Y8 http..

Article Thumbnail
시놀로지 NAS + JupyterLab 원격 IDE 환경

프로그래밍/Python 2022. 1. 4. 00:28

위 사진은 시놀로지에서 서버가 돌아가고있는 JupyerLab 환경입니다. 포트포워딩도 되어있어서 비밀번호만 알면 언제 어디서든지 url로 접속해서 Python 코딩이 가능합니다. 밖에서 백준풀때나 코딩으로 허세부리고 싶을때 유용하게 쓰고 있습니다. 속도는 네이티브 환경에서 하는거랑 비슷비슷한데 당연히 네이티브보단 느립니다. 저희집에 컴퓨터가 노트북 포함 4대쯤 있는데 이리저리 왔다갔다 하면서 해도 NAS를 기반으로 연동되서 매우 유용합니다. Anaconda나 JupyerLab(또는 Jupyter Notebook) 을 컴퓨터마다 깔아서 라이브러리가 따로 관리되는게 상당히 번거롭거든요. 아마 군대에 있었음 유용하게 썼을건데요.. ㅎㅎ 별로 말하고 싶지 않군요.

Article Thumbnail
[C++] ESP 핵 제작 가이드

프로그래밍/C 2021. 12. 9. 22:54

https://www.youtube.com/watch?v=SPHARh6ukog

[C] opendir로 파일 읽을때 유니코드, 한글 경로 읽기 및 파일 타입 체크 방법

프로그래밍/C 2021. 11. 5. 00:28

#include #include //dirent 구조체를 위해 dirent.h 참조 #include int main(void) { int length = 0; char file_path[100]; printf("폴더 경로를 입력해주세요. : "); gets(file_path); DIR *d; struct dirent *dir; d = opendir(file_path); if (d) { while ((dir = readdir(d)) != NULL) { printf("%s\n", dir->d_name); length++; } closedir(d); printf("총 발견한 파일수 : %d개", length); //열린 디렉토리를 닫는다. } return 0; } 해당 프로그램을 실행해서 디렉토리 경로를 입력..

Article Thumbnail
[Python] Selenium + IEDriver 성능 개선 방법

프로그래밍/Python 2021. 11. 1. 02:40

Selenium + ChromeDriver 조합 자체도 느려서 웹 사이트 뜯어가면서 requests 보고있는 판국에 굳이 인터넷 익스플로러 쓰겠다고 Selenium + IEDriver을 쓰는 분들이 얼마나 많을까 싶지만 지금 제가 아버지 업무자동화를 위해 만들고 있는 사이트가 구닥다리라 Active X + 보안 유틸리티 떡칠이라는 끔직한 조합 덕에 어쩔수 없이 IEDriver을 쓰고 있습니다. IEDriver을 쓰면서 조금의 팁을 작성합니다. 1. IEDriver이 아예 작동하지 않을때 https://pgh268400.tistory.com/123 [C#] Selenium IEDRIVER이 작동하지 않을때 해결법 Selenium으로 IEDriver을 제어하면 일부 컴퓨터에서 프로그램 구동이 되지 않고 소리..

Article Thumbnail
[Python] 디시인사이드 글 검색 크롤링 / 파싱

프로그래밍/Python 2021. 10. 30. 19:11

import time import requests, re from bs4 import BeautifulSoup from IPython.core.display import display, HTML #봇 차단을 위한 헤더 설정 headers = { "Connection" : "keep-alive", "Cache-Control" : "max-age=0", "sec-ch-ua-mobile" : "?0", "DNT" : "1", "Upgrade-Insecure-Requests" : "1", "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/53..

Article Thumbnail
비트코인 픽 사이트와 연동해서 텔레그램 알림을 주는 프로그램을 개발했습니다

프로그래밍/Python 2021. 10. 11. 02:16

비트코인 종목 추천 사이트와 연동하여 종목 추천이 이루어지는 오전 12:20, 오전 9시 정해진 시간에 따라 사이트에서 데이터를 가져와서 텔레그램으로 알림을 주는 프로그램입니다. 원래는 시간당 n만원씩 받고 외주 받는 형태로 진행하는데 같이 투자 진행하시는 분이 수익 내는데 도움도 많이 주시고 하셔서 특별히 공짜로 만들어드렸습니다 ㅎㅎ 원리는 간단하게 사이트에 자동으로 로그인한뒤 일정시간마다 requests를 보내고 나오는 response를 정리해서 Telegram 봇에 채팅을 보내도록 시키는 형태입니다. 일정시간마다 실행하는건 집에 24시간 돌아가는 저전력 NAS서버 시놀로지 작업 스케줄러를 이용해서 실행합니다. 아무래도 시놀로지가 리눅스 기반이라 크롬 드라이버는 사용이 안되서 Python의 reque..

Article Thumbnail
[Python] smi 자막 특정 위치부터 싱크 조절하기

프로그래밍/Python 2021. 9. 22. 02:00

from easysmi import * #단일 파일 처리 folder = 'C:/자막/' filename = '[SubsPlease] Tokyo Revengers - 02 (1080p) [B66CEAA7].smi' p = parse_smi(folder + filename) search_line = find_line_by_text(p, "sub by") if search_line != -1: s = sync_shift(p, search_line, -10000) s = sync_shift(s, 0, 1300) make_dirs(folder + 'output') #make output folder new_path = folder + "output/" + filename file_save(new_path, s)..

Article Thumbnail
[Python] 인코딩 오류 없이 텍스트 파일 읽기

프로그래밍/Python 2021. 9. 17. 20:57

def read_file(path): f = open(path, "r") line = f.readline() data = "" while line: data += line line = f.readline() f.close() return data smi 자막 파일을 열어서 싱크 조절을 위해 다음과 같이 코딩하고 즐거운 마음으로 실행을 하였습니다. UnicodeDecodeError: 'cp949' codec can't decode byte 0x01 in position 1: illegal multibyte sequence 어김없이 등장하는 오류.. 인터넷에 검색해보니 수많은 예제가 뜨네요. 인코딩이 안 맞아서 안 열리나 봅니다. 파이썬은 기본적으로 파일이 ANSI로 작성되었다고 가정하고 cp949라는 코덱..

Article Thumbnail
동영상 자막 이름 맞추기, 일괄변경하기 (E.Z Subtitles V3)

프로그래밍/C# 2021. 9. 9. 00:39

애니메이션, TV쇼에서 자막과 파일이 따로 있으면 이름을 맞춰 줘야하는데 DarkNamer 같은 유틸리티로 할 수 있으나 조금 번거로워지는 경우가 있습니다. 그래서 동영상과 자막을 등록해두면 원클릭으로 매칭시켜주는 프로그램을 개발했습니다. 인터넷에 이와 같은 기능의 여러 프로그램이 배포되있긴 합니다만 바이러스가 있다던지.. GUI가 좀 마음에 안든다던지... 특히 정렬이 원하는 대로 안되는 경우(중요)가 있어서 직접 제작하게 됬습니다. 프로그램 장점 naturalSort 알고리즘이 적용되어 있어 윈도우 탐색기에선 제대로 정렬이 된걸로 보이는데 프로그램으로 옮기면 저렇게 정렬이 원하는 대로 안되는걸 최소화 합니다. (쉽게 말해서 윈도우 탐색기처럼 정렬을 시킨다 보면 됩니다.) 또한 이래도 정렬이 되지 않는..

Article Thumbnail
[TriggerReactor] 마인크래프트 트리거 리액터 오른쪽 클릭 시 아이템 사용 예제

프로그래밍/기타 2021. 9. 2. 01:09

IF event.getAction().name() == "RIGHT_CLICK_AIR" //#MESSAGE "허공에 오른쪽 클릭입니다. (사용)" IF event.getItem().getType().name() == "PLAYER_HEAD" //player.getInventory().remove(player.getItemInHand()); player.getInventory().getItemInHand().setAmount(player.getInventory().getItemInHand().getAmount()-1); #MESSAGE "&6플레이어 머리를 사용하여 버프를 얻었습니다." #SOUND player.getLocation(), "ENTITY_PLAYER_BURP", 1.0, 1.0 #ACTION..

Article Thumbnail
[Python] 가상화폐 트레이딩 봇 제작중

프로그래밍/Python 2021. 8. 31. 02:47

요즘 아는 분들과 파이썬을 이용해 가상화폐 트레이딩 봇 프로젝트를 진행중입니다. 차트좀 볼줄 아시는분 + 컴퓨터 공학과 학부생분과 같이 수익률을 위해 프로젝트를 진행하고 있습니다. 우선 전략은 변동성 돌파 + ma N일선 돌파를 기반으로 하여 공포/탐욕 수치, 시가총액, 온체인 지표 등 다양한 보조지표로 정확도를 올려볼 생각입니다. 사실 이걸 만들게 된게 API 지수로 가상화폐 픽을 제공하는 사이트가 있던데 사용하신 분에 따르면 이게 적중률이 높은 편이라고 해서 어떤식으로 작동하는지 궁금해서 제작을 시작하게 되었습니다~ 끝까지 잘 마칠 수 있을진 모르겠지만 변동성 돌파가 과연 유의미한 결과를 가져다줄지도 궁금하네요 ^^

Article Thumbnail
[Python] 구글 코랩(Google Colaboratory)에서 Selenium 사용하기

프로그래밍/Python 2021. 8. 31. 01:27

안녕하세요 파일입니다. 오늘은 Google Colab에서 Selenium을 사용하는 방법에 대해 포스팅 하겠습니다. 구글 코랩은 Jupyter NoteBook과 비슷한 방식으로 실행되는데 저도 정확하게 아는 것은 아니지만, 서버가 실행되서 그 웹페이지에서 코딩을 하고 거기서 코딩을 하면 서버가 커널을 실행해 코드를 연산합니다. 참고 : https://tobefreein2040.tistory.com/10 3. Jupyter Notebook 안녕하세요. 자꿈두입니다. 오늘 공부할 내용은 Jupyter Notebook입니다. Jupyter Notebook? Anaconda를 설치하게 되면 자동으로 설치되는 응용 프로그램중 하나입니다. Jupyter Notebook을 사용하게 되면요 1. 코 tobefreein..

Article Thumbnail
Excel을 통한 PC SMS 전송 프로그램을 개발했습니다

프로그래밍/C# 2021. 8. 23. 19:35

안녕하세요 파일입니다. 오늘은 제가 개발한 PC SMS 자동 전송 프로그램에 대해 소개해보려고 합니다. 업무 자동화를 위해 C#으로 개발되었으며 Excel 파일을 통해 특정 다수에게 SMS를 대량으로 간편하게 전송할 수 있습니다. What was used? 본 프로그램은 PushBullet 어플과 연동하여 제작되었습니다. PC에서 PushBullet ApI 서버에 API Key와 메세지를 전송할 전화번호, 내용을 전송(POST)하면 PushBullet 서버에서 API Key에 연결된, 해당되는 스마트폰에 설치된 PushBullet App에 신호를 보내고 PushBullet App이 스마트폰을 제어해 메세지를 보내는 구조로 구성되어 있습니다. 메세지를 보내는 과정에서 PushBullet이 단대단 암호화를 ..

Article Thumbnail
[C#] DataGridView Foucs 초기화 & 데이터 크기에 맞춰서 Column 자동 설정

프로그래밍/C# 2021. 7. 23. 19:21

데이터 크기에 맞춰서 Column 자동으로 확장시키기 /// /// 데이터 크기에 맞춰서 Column을 자동 정렬합니다. /// /// private void DataGridView_AutoResize(DataGridView dt) { for (int i = 0; i < dt.Columns.Count - 1; i++) { dt.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; } dt.Columns[dt.Columns.Count - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; for (int i = 0; i < dt.Columns.Count; i++) { int colw = dt.C..

Article Thumbnail
[Baekjoon] 5430번: AC

프로그래밍/BaekJoon 2021. 7. 20. 00:43

https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제 설명 새로운 언어 AC를 만들었다고 합니다. R은 배열에 있는 숫자의 순서를 뒤집는 명령어고 D는 첫 번째 숫자를 버리는 함수라고 합니다. 명령어, 배열크기, 배열이 각각 주어졌을 때 명령어가 실행된 후 배열의 상태를 출력하는 문제입니다. 예를 들어 RDD라고 명령어가 주어졌으면 주어진 배열에 뒤집기, 첫 번째 숫자 삭제, 첫 번째 숫자 삭제를 수행한 후 배열에 남아있는 요소를 출력하면 됩니다. 첫 번째 숫자를 뽑을 수 없으면 error를 출력합니..

Article Thumbnail
[Baekjoon] 10989번: 수 정렬하기 3

프로그래밍/BaekJoon 2021. 6. 9. 02:30

https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 설명 들어온 수를 다음과 같이 정렬해서 출력하는 문제입니다. 처음엔 파이썬으로 풀었고 리스트에 입력받고 리스트.sort() 로 정렬한뒤에 for문으로 출력하면 될 간단한 문제인줄 알았으나... 자세히 보면 메모리 제한이 8 MB 입니다. 수 정렬하기 2가 메모리 제한이 256MB로 기억하는데 메모리 제한이 32배나 차이가 납니다. 일단 확실한건 입력 데이터 N의 갯수 범위가 (1 ≤ N ≤ 10,000,000..

Article Thumbnail
[Baekjoon 파이썬] 1929번: 소수 구하기

프로그래밍/BaekJoon 2021. 6. 3. 17:14

https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 문제 설명 숫자 2개를 입력받고 그 숫자의 범위내에 해당하는 소수를 모두 출력하는 문제입니다 ex) 3 10 으로 입력 => 3이상 10이하 내에 있는 소수 모두 출력 => 3,5,7 solved.ac에서 티어 실버2 에 분류되어 있는 문제이며 시간 제한은 2초 인것으로 보아 에라토스테네스의 체 알고리즘을 적용시켜야 하는것으로 유추해볼 수 있습니다. Python에서 간단한 소수판별 방법 def check_prime(n): if(..

Article Thumbnail
[Baekjoon C언어] 10250번: ACM 호텔

프로그래밍/BaekJoon 2021. 5. 29. 00:25

https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 문제 설명 이번 문제는 설명이 상당히 길었습니다. 문제를 푸는 것보다 문제를 이해하는 게 더 걸렸네요.. 간단히 문제에 대해 설명하자면 손님이 정문에서 나와서 엘리베이터를 타서 방을 들어가려고 한다고 합니다. 손님은 정문에서 나와서 엘리베이터 걸어가는데 걸리는시간, 엘리베이터 이동하는 거리는 전부 신경 쓰지 않고 엘리베이터를 타고 나올때 오로지 가까운 방에 들어가는 걸 선호합니다. 예..

Article Thumbnail