본문 바로가기

한강수온 크롤링 (selenium,phantomjs,beautifulsoup) @마크다운# python selenium,beautifulsoup4를 사용을 기준으로 한 포스팅입니다. 한강수온을 체크하기 위해선 공공API가 있는지 부터 체크를 해야한다.API가 있다면 작업을 사실 할게 없기 때문# 유감스럽게도 한강수온은 API를 제공해주지 않는것 같았다( 있다면 알려주세요)그래서 [실시간수질정보시스템](http://www.koreawqi.go.kr/index_web.jsp)을 실시간으로 크롤링하기로 했다.# [실시간수질정보시스템](http://www.koreawqi.go.kr/index_web.jsp)에 들어가보면 수계별 실시간 수질자료를 볼 수 있는데여기서 구리측정소가 한강물온도가 되겠다.# 간단하다.이 사이트를 분석하고 저 수온만 빼내면 된다.개발자 도구가 아닌 마우스 우클릭 -.. 더보기
python pycrypto 사용하기 @마크다운 # 파이썬에서 pycrypto라는 암호화 모듈을 사용할 수 있는데실제 파이썬3 이상의 환경에서 사용시 동작을 하지 않는경우가 발생한다.이유는 pycrypto라는 모듈이 파이썬2를 기준으로 만들어 졌기 때문이다.물론 위의 문제를 해결할수 있도록 `easy install`을 사용하거나 기타등등의 방법이 있지만너무 불편하다.# 예를들어 AWS같은 클라우드 서비스를 사용할때 `requirement`를 `easy install` 때문에 별도로 작성해야한다던가 하는 귀찮음이 있다.그래서 본 글에서는`pycrypto`를 사용하지 않고 `pycryptodome`을 사용했다.# 기존의 pycrypto를 파이썬3에 맞게 이식한 모듈인거 같다. ```pip install pycryptodome```[pycrypt.. 더보기
git commit 100MB이상 파일 지우기 @마크다운 github를 사용하던중에 commit이 약 140개가량이고 push를 하지 않았던 프로젝트가 있었다.push를 하지 않았던건 귀찮음과 여러가지 사정이 겹쳐서 무기로 사용하기 위함이었는데..어찌 됐든, push를 시도하던 도중 push가 실패하는 이슈가 발생했다.# 원인은 github에 100MB이상 파일을 올릴수 없다는것이었다.# > github는 50MB이상 파일은 경고를 띄우고 100MB이상의 파일은 push가 실패한다.> commit할때 좀 알려주면 안되나;;# 본인처럼 push를 하지않고 commit만 주구장창하는경우에 이게 문제가 되는데commit이 많은경우 100MB이상의 파일이 어디서 부터 포함되었는지 파악하기가 매우 까다롭기 때문이다.현재 HEAD에 100MB파일을 포함하지 않.. 더보기
문자열에서 홀수인 숫자를 제곱하여 더하라 @마크다운 로켓펀치를 돌아다니다 재밌는 예제를 보았다. ``` ab2v9bc13j5jf4jv21```이러한 문자열이 있을 때 홀수인 숫자만 제곱하여 더한 값을 출력하라는 것이었다. 처음 봤을땐 정규식으로 숫자만 뽑고 %2하면 되겠구나 했다. > &1 가 %2보다 월등히 빠르지가 않다. 이상하다... 파이썬이라 그런가? 아무튼 %2로 홀짝을 구분해보려다 정규식으로 홀수만 추출을 한다면 더 간단하지 않을까 해서 정규식을 열심히 찾았다. ``` def find_odd_number(text): result = sum([int(i) ** 2 for i in re.findall('[0-9]*[13579]', text)]) return result``` 앞자리가 숫자인경우를 찾고 *를 사용하여 반복시켰다. 뭔가 쉬우.. 더보기
스레드를 사용한 이메일 비동기 전송(django email) @마크다운 이메일을 발송하기 위해 기본적으로 세팅해야할 것들이 있다.본 글에서는 gmail을 기준으로 설명함 SMTP설정을 위해 사용하려는 gmail계정에 다음과 같은 설정을 먼저 해주자# 1.[IMAP설정](https://support.google.com/mail/answer/7126229?hl=ko&rd=3&visit_id=1-636281811566888160-3239280507#ts=1665018)# 2.[보안 수준이 낮은 앱 허용](https://support.google.com/accounts/answer/6010255)# 3.[캡챠 잠금해제](https://accounts.google.com/displayunlockcaptcha) 그 후 django settings.py에서 다음과 같이 설정을.. 더보기