프로그래밍/Python 파이썬
-
Python - 기존 코드 병렬 처리 - 멀티쓰레드(Multi Thread)프로그래밍/Python 파이썬 2023. 10. 20.
목적 사용중이던 메소드 하나가 동기 방식이여서 요청을 보내고 기다리는 식을 반복문으로 감싼터라 시간이 매우 오래 걸렸다. 이를 비동기 방식으로 실행 한다면 엄청난 시간 절약이 될 것이라서 코드 변경을 하려고 한다. 문제 발생 비동기 처리를 위해서 여러가지 파이썬 라이브러리를 찾던중 가장 최근의 라이브러리인 asyncio를 선택했었다. 하지만 내가 보내는 요청은 requests를 사용하는 라이브러리를 가져와서 사용하는 것이라서 해당 패키지를 뜯어서 고치지 않는이상 asyncio를 사용할 수 없었다. asyncio를 사용하기 위해서는 요청을 보내는 코드에 손을 봐야 했었다. 해결 내가 원하는 프로그램 구동 방식은 해당 메소드 그 자체를 여러번 동시에 실행하는것 즉 메소드 그 자체를 비동기로 돌리는것 이건 즉..
-
파이썬 - 무료 프록시 걸러내기 정상 찾기프로그래밍/Python 파이썬 2023. 3. 1.
무료 프록시 사이트에서 json 형태로 무료 프록시 주소를 받아서실제 서버 통신을 해보고 작동하는 프록시인지 체크하는 로직이다.def proxy(): test_url = 'https://api.ipify.org' free_proxy = 'https://proxylist.geonode.com/api/proxy-list?limit=500&page=1&sort_by=upTime&sort_type=desc' proxy_list = [] # get proxy list from free site site_json = requests.get(free_proxy).json()['data'] # ip port mapping for i in site_json: # sear..
-
텔레그램 API Bot Chat Id 알아내기프로그래밍/Python 파이썬 2022. 12. 13.
Chat Id를 알아내기 위한 작업 순서 1. 봇 포함 그룹 채팅방 개설 후 봇 과의 1대1 채팅방 오픈 (또는 그룹방 만들고 오픈) 2. 일단 채팅방에 아무 채팅이나 보냄 3. 토큰값 부분 수정해서 인터넷 주소 창에다 복붙 https://api.telegram.org/bot토큰값/getUpdates 토큰값 부분 수정해서 인터넷 주소 창에다 복붙 참고 : api 호출 참고 양식 : https://api.telegram.org/bot/METHOD_NAME/METHOD_NAME token값 기억 안난다면 botfather 에게 물어 본다. 채팅방에 명령어 입력 /token 봇 이름 입력 끝 4. 주소에 위의 url 토큰값 넣고 들어가면 json 데이터로 결과값이 나올것이다. 만약 json 데이터가 안나오고 ..
-
파이썬 버전 업그레이드 재 설치 방법프로그래밍/Python 파이썬 2022. 11. 11.
23.05.01 추가 공홈에서 최신 버전 인스톨러 받고 업그레이드 간단하게 가능 기존 메뉴얼 설치 유저들은 가능할지 모르겠음 다만 자릿수가 바뀌는 버전의 경우 폴더 이름이 바뀌기 때문에 그냥 재설치 해야함 윈도우에서 파이썬 업그레이드 방법은 따로 없다. 삭제 후 새로 설치가 답 기존 파이썬에서 쓰던 라이브러리 백업 후 새로 설치 후 라이브러리 한꺼번에 설치까지 해줘야 한다. 이번에 파이썬 3.11버전이 기존 버전들 보다 속도 향상 10 ~ 60%까지 올라갔기 때문에 버전 업그레이드겸 글을 작성한다. https://www.python.org/downloads/windows/ Python Releases for Windows The official home of the Python Programming La..
-
python - selenium shadow dom 트러블슈팅프로그래밍/Python 파이썬 2022. 8. 3.
홈페이지의 구조가 바뀌어 크롤링이 막혔다. 이에 따른 해결 과정을 기록해 둔다. 문제 : HTML의 구조에 변경이 있음 일반적인 구조에서 shadow-root 이라는 dom이 생성되어져 있음. dom은 일반적인 방법으로는 요소 파싱이나 값을 바꿀 수 없음. 해결 : selenium 라이브러리의 자바스크립트를 사용할 수 있게 해주는 메소드를 이용하여 해당 페이지에서의 HTML 태그 내부 value 값을 바꾸었음. # shadow-root dom 회피 id = "'test'" pwd = "'test'" driver.execute_script("document.getElementsByName('name 태그')[0].value=" + id) driver.execute_script("document.getEle..
-
python - selenium 창 크기 옵션 주의점프로그래밍/Python 파이썬 2022. 8. 3.
셀레니움에 아무 옵션을 주지 않는다면 기본적으로 창 모드로 실행이 됨. 즉 셀레니움의 대상 사이트가 자체적으로 창 크기에 따른 반응형 홈페이지라면 HTML의 내부 요소들이 변경이 됨. 요소 파싱을 할 수 없게될 가능성이 있음. ex) 창 크기를 줄이면 모바일 사이즈로 자동으로 변경되는 사이트 나는 항상 풀 스크린 기준으로 요소의 속성들을 따내기 때문에 옵션에 풀 스크린 옵션과, 윈도우 사이즈 옵션을 기본적으로 주고 시작함. options = webdriver.ChromeOptions() options.add_argument('window-size=1920x1080') # pc용 사이즈 options.add_argument('--start-maximized') # 브라우저가 최대화된 상태로 실행 위 옵션을..
-
파이썬 - 텔레그램 import 오류 뜰때프로그래밍/Python 파이썬 2022. 3. 2.
어느날 텔레그램(telegram) 라이브러리를 잘 쓰다가 갑자기 import 에러를 띄우면 먼저 pip / pip3 uninstall 명령어를 통해서 텔레그램 패키지를 싹 지우고 다시 설치를 한다. pip3 uninstall python-telegram-bot 그리고 다시 install 명령어로 다시 설치 만약 이렇게 해도 안된다면 코드를 바꿔줘야함 내가 쓰던 기존 코드 token = "your token" bot = telegram.bot(token = token) chatID = 'your chatId' 바꾼 코드 token = "your token" bot = telegram.Bot(token) chatID = 'your chatId' 텔레그램API의 메소드가 변경된거 같다. bot -> Bot