본문 바로가기
728x90

ETC/Python27

[Python] Selenium ChromeDriver 우회하기 Bot 방지 해결법 #Selnium #ChromeDriver #Bot 우회하기 #Bot Bypass #Chrome 크롤링을 하기 위해 Selenium으로 봇을 만들어 사이트를 크롤링하다가 갑자기 Bot으로 탐지되어 정상적으로 크롤링을 하지 못하는 경우가 생깁니다. 여러 우회방법이 있겠지만 이번 글에서 소개해드릴 방법은 세가지입니다. IP, USER-AGENT, REFERER 입니다. 물론 이 세가지보다 중요한것은 "너무 봇같지 않게" 크롤링하는 것입니다. 너무 빠르게 탐색한다는지 그런 행위들은 사이트에서 쉽게 봇으로 탐지할 수 있습니다. 이제 방법을 소개해드리겠습니다. 1. Random IP로 크롤링 tor를 이용한 임의의 IP로 크롤링하는 방법입니다. tor는 다음 사이트에서 다운로드할 수 있습니다. tor 다운로드 Th.. 2020. 12. 8.
[Python] 네이비즘 티케팅 연습 매크로를 만들어보자 1탄 네이비즘 티케팅 연습 사이트 매크로를 만들어보도록 하겠습니다. 티케팅을 연습하기 위한 기능인데 매크로를 만들면, 무슨 의미가 있을지는 모르겠지만 일단 만들어보도록 하겠습니다. 티케팅 연습 사이트는 다음과 같이 생겼습니다. 포도알을 클릭하면 성공하고, 다른 좌석을 클릭하면 라이프가 깎입니다. 간단하게 보라색 칸을 인식해서 그 위치를 클릭하면 됩니다. 저는 작은 크기의 포도알만 필요하기 때문에 그림판을 이용해서 잘라줍니다. 이제 우리는 반복문을 이용해서 포도알 그림이 있는지 계속해서 체크하고 있다면 클릭, 없으면 대기를 하면 되겠습니다. 이용되는 것은 python과 pyautogui 모듈입니다. 다음과 같이 코드를 작성합니다. import pyautogui import pydirectinput import .. 2020. 12. 7.
[Python] Telegram 메시지 봇(bot) 만들기 Python Telegram message api 파이썬 텔레그램 메시지 파이썬 텔레그램 API 텔레그램 자동 메시지 텔레그램 봇 만들기 이번 글에서는 python을 이용하여 텔레그렘 메신저에 메시지를 자동으로 보내는 프로그램 및 소스코드를 소개해드리려고 합니다. 카톡의 경우 api를 대부분 공개하지 않아, 메신저를 자동으로 보내기 힘들어 메신저 봇을 만들때는 텔레그렘을 주로 이용한다고 합니다. 우선 텔레그렘에 메시지를 보내면 띄워줄 봇을 만들어야합니다. 봇을 만드는 방법은 간단합니다. 우선 BotFather라는 계정을 친구 추가합니다. 그런 다음 이 친구에게 다음과 같이 메시지를 보냅니다. I can help you create and manage Telegram bots. If you're new t.. 2020. 11. 25.
Python 문자열인지 숫자인지 확인 파이썬 숫자인지 확인 python 숫자인지 확인 오늘 소개해드릴 함수는 isalpha,isdigit 입니다. 함수의 이름에서 쉽게 유추할 수 있습니다. isalpha함수는 문자열이 문자인지 아닌지를 isdigit함수는 문자열이 숫자인지 아닌지를 True,False로 리턴해줍니다. number='123' word='word' print(number.isdigit()) print(word.isdigit()) print(number.isalpha()) print(word.isalpha()) 다음과 같이 실행했을 때 결과는 다음과 같습니다. True False False True 그래서 if문을 써서 다음과 같이 구분할 수 있습니다. if(word.isdigit()): #숫자일때 실행할 내용 else: #문자일.. 2020. 8. 24.
PyQt QtextEdit textchanged event PyQt에서 QtextEdit의 값이 변할때 이벤트 처리하는 법에 대해서 알아보려고 한다. QTDesigner는 해당 기능을 수행하지 못하므로, 디자인 후 python code로 만들어준다. qt파일을 python code로 만들어주는 코드는 다음과 같다. pyuic5 -x "qt.ui" -o "qt.py" 바꾸었다면 python code를 열어준 후 setup ui를 찾고 다음 코드를 입력해준다. self.Text.textChanged.connect( self.changed ) 이 코드는 Text라는 이름의 QTextEdit의 text가 바뀌었을 때 changed라는 함수를 실행한다는 뜻이다. changed를 정의해준다. def htmlsetting(self): print(self.Text.toPlai.. 2020. 8. 23.
Python URLEncoding code Python에서 URLEncoding은 urllib의 parse를 사용하면 된다. 먼저 import 시켜준다. from urllib import parse 그 다음 parse의 quote를 이용하면 된다. 주의할 점은 url전체를 quote하면 안된다. url = 'https://kin.naver.com/search/noAnswerList.nhn?query=담배' print(parse.quote(url)) 다음과 같이 url전체를 parse.quote한 경우는 다음과 같이 나온다. https%3A//kin.naver.com/search/noAnswerList.nhn%3Fquery%3D%EB%8B%B4%EB%B0%B0 : 나 / 혹은 ? 와 같은 문자들도 encoding해버린다. 따라서 한글만 parse... 2020. 8. 16.
PyQt 비밀번호 입력창(별표 표시) 만들기 이번 글에서는 QtextEdit 비밀번호 입력창 만들기를 해보도록 하겠다. 프로그램 로그인창에서 비밀번호를 그대로 보여주는 형태로 만들면, 유저입장에서 뭔가 찝찝한 기분이 들 수 있다. 따라서 비밀번호 Object에 값을 입력 시, 자동으로 * 표시와 같이 안보이는 형태로 바꿔주면 좋을 것이다. 우리는 코드를 통해 이 문제를 해결해야 한다. QtDesigner로 만들어 놓은 UI 틀은 다음과 같다. 아쉽게도 QTextEdit은 password모드를 제공하지 않는다. 현재는 값을 입력하면 다음과 같이 나온다. 비밀번호가 그대로 노출이 된다. 우리는 이 비밀번호를 *표시로 바꿔주어야 한다. 우선 비밀번호 QTextEdit을 지우고 QLineEdit으로 바꿔준다. 그다음 echoMode를 Password로 바.. 2020. 8. 15.
PyQt5 버튼 클릭 이벤트(PyQt button event python) pyqt5 버튼 클릭 이벤트 파이썬 pyqt 버튼 클릭 이벤트 PyQt5에서 UI의 버튼을 눌렀을 때 이벤트를 처리하는 코드를 작성해보도록 하겠다. 이벤트를 처리할 때 사용하는 함수는 이벤트 핸들러라고 한다. UI는 다음과 같다. 간단한 QTextEdit 두개와 QpushButton하나로 UI를 만들었다. 위쪽 QTextEdit을 ID text라고 가정하고, 로그인 버튼 클릭시 값을 출력하는 코드를 작성해보자. 로그인 버튼의 objectName을 LoginButton으로 바꿔주고, 위쪽 QTextEdit을 IDText로 아래쪽 QTextEdit을 PWText로 바꾼다. UI를 저장하고 다음 코드를 통해 UI를 파이썬 코드로 바꿔준다. pyuic5 -x "ui 파일 이름.ui" -o "파이썬 파일 이름.p.. 2020. 8. 15.
Python PyQt QtDesigner 설치하기 & 사용법 이번 글에서는 PyQt5 Designer 설치와 사용법에 대해 알아보도록 하겠다. QtDesigner는 Python GUI 프로그래밍의 레이아웃을 Drag & Drop 방식을 이용하여 편리하게 구성할 수 있는 Tool이다. QtDesigner 설치하기 QtDesigner도 역시 pip을 이용하여 설치할 수 있다. 다음과 같이 터미널에 입력한다. pip install pyside2 Pyside2를 설치하였다면 Qt Designer가 자동으로 컴퓨터에 설치되었을 것이다. Qt Designer 설치 경로는 다음에서 확인할 수 있다. C:\Users\%USERNAME%\AppData\Local\Programs\Python\[파이썬버전]\Lib\site-packages\PySide2\designer.exe 설치 .. 2020. 8. 13.
728x90