-
[Python] Multi-Thread Queue Polling
여러개의 thread 중 하나의 thread가 처리하게끔 만드는것을 polling이라고 한다. Linux의 경우엔 select()라는 함수가 존재하는데, 이를 Python에서 구현하면 다음과 같다. Got: 1 Got: 10 Got: hello Got: 15 운영체제 시스템에선 유저와 커널이 서로 데이터를…
-
[Python] Selenium
동적으로 웹 페이지에서 어떤 동작들을 하고 싶을때 Python 프로그램을 통해서 또한 가능하다. 아래 코드는 특정 사이트에서 로그인을 하는 프로그램이다. HTML 요소: 태그 이름: a 문자열: 로그인 href 속성: https://auth.danawa.com/login?url=http%3A%2F%2Fwww.danawa.com%2F 위 코드의 결과를 보기전에…
-
[Python] 구글 뉴스 클리핑
우리가 구글에서 “파이썬”이라고 검색을 하고 URL을 보면 다음과 같이 나온다. /search?q=%ED%8C%8C%EC%9D%B4%EC%8D%AC&hl=ko&gl=KR&ceid=KR%3Ako
-
[Python] BeautifulSoup
BeautifulSoup 활용 웹 크롤링을 할 때 자주 사용하는 library인 beautifulsoup의 예시 코드는 다음과 같다. <class ‘bs4.BeautifulSoup’> <head> <meta charset=”utf-8″/> …title 태그 요소: Seoul Metropolitan Subway – Wikipedia title 태그 이름: title title 태그…
-
-
[Python] SSLError
Python에서 외부 호스트에 request를 날릴 때 다음과 같은 error가 발생한다. 위를 해결하기 위해서 다음과 같은 코드를 추가하면 해결 가능하다. os.environ['HTTP_PROXY'] = os.environ['http_proxy'] = "[Proxy Server IP]"
-
[Python] Property Extension
deleter 지난번에 Python에서 접근 지정을 위해 property class를 사용한다고 배웠다. Property 기능은 크게 세 가지가 존재하는데, getter, setter, deleter가 존재한다. deleter는 property를 삭제할 때 호출되는 함수다. (del을 통해) Subclass에서 Property Setting name to…
-
[Python] 다중 상속, MRO
Python에선 다중으로 상속이 가능하다. 그래서 대표적인 상속 예시가 다이아몬드 상속이다. Base.__init__ A.__init__ Base.__init__ B.__init__ C.__init__ 위 코드는 Base라는 최상위 class가 두 번 호출된다. C++의 경우엔 virtual이라는 것을 통해 하나라는 것을 알 수 있지만…
-
[Python] Proxy Design Pattern
42 A.spam None Should be 37: 37 Should be 37: 37 위 코드는 객체 a를 Proxy()에 넣으면 객체 p에 접근하면 마치 a에 접근하는 것처럼 하는 proxy design pattern 이다. 위 코드에서 print(p.x) 가…
-
[Python] Override
Class에서 부모 class와 자식 class의 function 이름이 같을 경우 자식 class’s function을 call 할 때 부모 class function이 가려지고 자식 class function이 호출된다. B.spam A.spam Constructor 또한 일반 함수처럼 override 된다. B.__init__() 1…