본문 바로가기

728x90
반응형

Language/Python

(47)
[Python] Selenium Proxy를 이용한 Tor 사용하기 HTML 삽입 미리보기할 수 없는 소스 개요 6월에 유튜브를 보던 도중 Seleinum으로 Proxy를 사용하던 하나의 영상을 보게 되었습니다. 원래 Seleinum으로 Proxy를 사용하는 방법은 6월의 ToDoList 중 하나였는데 이제야 조사를 마쳐서 글을 쓰게 되었습니다. 아마 이 글의 제목을 보고 이 글을 읽으려고 하시는 분들은 Proxy를 적어도 한 번 들어봤거나 이미 알고 계신 분 들일 것이라 조심스레 유추해 봅니다. 그러하여 Proxy에 대한 이론이나 원리를 자세하게 정리한다기보다 글의 제목처럼 Selenium에서 proxy를 사용하는 방법과 나아가 Mac에서 Seleinum을 통해 Tor를 이용하는 방법을 기술하려고 합니다. 요약하자면 제가 Python으로 Selenium에서 Proxy를..
pytest-django에서 view에 request 던지기 개요 api를 테스트할 때는 pytest-django에는 client라는 fixture를 통해 api를 테스트하는데 이 fixture는 내부적으로 뭘로 구현한 거지 싶어서 살펴보고 있었다. 내부를 살펴보니 django의 test 패키지의 client 모듈의 RequestFactory를 사용하는 형태였다. 그렇다면 django의 view를 테스트하는 다른 형태의 코드를 작성할 수 있지 않을까 싶은 호기심이 생겼다. Setting 테스트 대상인 프로젝트의 구조는 대충 다음과 같이 생겼다. ╰─$ tree -L 2 . ├── Makefile ├── docker │ ├── Dockerfile │ ├── docker-compose.yml │ └── init-db.sh ├── pytest.ini ├── readme..
setuptools를 활용한 프로젝트 패키징 HTML 삽입 미리보기할 수 없는 소스 개요 어떤 프로젝트의 루트 디렉터리에서 종종 setup.py라는 파일을 발견할 수 있습니다. 이 파일은 프로젝트를 패키징 하는 데 사용됩니다. 개인적으로는 직접 작성한 코드를 패키징하여 PyPI에 게시하는 등의 경험은 없었습니다. 그러나 복잡한 프로젝트 구조에서 프로젝트와는 별개로 사용되어야 하는 모듈을 개발하고 사용하는 경우를 접해보았습니다. 간단히 말해서 자체 개발한 Third Party 모듈의 개념이 될 수 있겠습니다. 그래서 setup.py를 통해 프로젝트의 패키징뿐만 아니라 구조적으로 복잡한 프로젝트의 모듈을 완전히 분리하고 조합하는 형태로 개발할 수도 있을 것으로 예상됩니다. 물론 프로젝트 구조가 복잡해지면 의존성도 복잡해진다는 점을 염두에 두어야 합니다..
함수에 적용되어있는 decorator를 알아내는 방법 개요 최근 사내 소스 코드를 보면서 이런 생각을 해봤습니다. "함수에 적용된 decorator를 어떻게 알아낼 수 있을까?"였습니다. 이유는 Decorator를 통해서 Client로 입력받는 값이나 해당 View가 Authenticate을 필요로 하는지의 기능을 구현하곤 하는데요 이 정보들을 활용해 API 문서를 작성하는데 생산성을 끌어올리고자 함이었죠 보통은 문서 자동화를 지원하는 라이브러리를 사용해서 API 문서를 작성하기 때문에 이러한 상황을 맞닥뜨릴 일이 별로 없습니다만 그러한 상황이 아니기도 하며 API 문서를 수기로 작성해 나가는 방식이기 때문에 조사해 볼 가치는 충분했습니다. 그러므로 "함수에 적용된 Decorator를 어떻게 알아낼 수 있을까?"를 탐구한 과정을 기록해보고자 합니다. "..
urllib을 이용한 학교 메일 가져오기 본 포스팅은 이전 블로그로부터 백업된 글입니다. 이전 작성일: 2018-11-08 개요 저는 주로 어떤 사이트에 로그인을 실행하는 기능을 만들 때 Selenium과 Chrome Driver 이 두 개를 활용해 특정 Login Form이나 Html Tag를 찾아 selenium 모듈의 webdriver 객체의 "find_element_by_name" 과 같은 메서드를 이용합니다 헌데 이번에 쓰는 Urllib의 기능은 이런 순서와는 좀 다르게 쿠키값을 수정해 보내는 형식으로 로그인을 해보겠습니다. 'GET' 방식이나 'POST' 방식으로 로그인 하는 것도 가능하다고 합니다 이 글에서 쓰는 방식은 정확하게 말하면 보내는 쿠키 값을 수정하는 것이지만 POST 방식의 헤더를 수정하는 것이기 때문에 POST 방식..
pytest-django 에서 자주 사용했던 것들 HTML 삽입 미리보기할 수 없는 소스 개요 pytest는 python에서 테스트 코드를 작성하기 위해 많이 사용되는 라이브러리입니다. unittest와는 조금 다르게 테스트 코드를 작성하기에 간결하고 여러 기능을 지원하기 때문에 필자는 자주 이용하는 편입니다. 이전부터 가끔씩 django에서 pytest를 써왔는데 pytest를 최근 자주 사용하게 되어 pytest에서 애용했던 항목들을 기록해두고자 합니다. Installation pytest를 django에 사용하기 위해 다음과 같이 ‘pytest-django’라는 라이브러리를 설치해야합니다. pip install pytest-django pytest-django는 pytest.ini를 통해 pythonpath를 설정할 수 있게 해줍니다. python..
Python을 이용한 UserAssist 레지스트리 분석하기 이전 블로그로부터 백업된 글입니다. 작성일: 2019-10-16 20:14 원제목: Python을 이용한 UserAssist 레지스트리 분석하 레지스트리 분석으로 사용했던 프로그램을? 윈도우 레지스트리 정보에는 사용했던 프로그램 정보들을 가지고 있는 항목이 있습니다. 윈도우 10에서 확인해 본 결과 경로는 다음과 같습니다. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count 레지스트리 정보는 "Windows" 를 누르신 후, reg 까지 입력하면 자동으로 레지스트리 편집기를 찾아줍니다. 암호화 되어있는 레지스트리 정보 아래의 사진은 제..
외부 APIResponse Data를 DataClass로 변경하기 개요 Python에서 Type Hint를 적용하면 TypedDict를 사용해 Key를 자동완성 시킨다거나 특정 클래스에 어떤 속성이 들어 있는지 파악할 수 있어 많이 편리합니다. 하지만 Typing 자체를 적용하려고 공수를 들여 작업하는 케이스도 존재합니다. 이번에 마주한 경우는 외부 API에서 받은 응답을 프로젝트에서도 사용할 수 있게 구성해야 했습니다. 단순히 API의 요청과 응답을 제공하는 메서드를 만드는 것이 아닌 응답받은 데이터에 대해 TypeHint를 적용해 코드 자동 완성을 달성하기 위함이었죠. 문제는 외부 API에서 응답으로 주는 데이터가 중첩된 구조의 자료형일 때 나타났습니다. 여기서 중첩된 구조라 하면 다음과 같은 형태를 말합니다. { "a": { "b": { "c": 1, "e": 1..

728x90
반응형