전체 글(29)
-
Imgur API와 ProxyRotator를 활용하여 다수의 이미지를 업로드하자
지난 글(Imgur API를 이용해서 이미지 서버 운영 비용을 절약하자)에서 Imgur API를 이용해서 Imgur 서버에 이미지를 올리고 사용하는 것을 언급했는데 Imgur API를 사용하는데는 몇가지 제한 사항이 있다. 첫 번째는 JPG, PNG의 경우 최대 20MB까지 업로드 가능하다. 두 번째는 하나의 IP에서 시간당 50개까지 업로드 가능하다. 위와 같은 제한사항, 특히 두 번째 항목 때문에 작은 서비스에도 적용하기가 어렵다. 그래서 생각해낸 방법이 프록시를 거쳐서 Imgur API를 호출하는 것이다. ProxyRotator는 유료이긴 하지만 REST API를 이용해서 손쉽게 프록시 서버 정보를 제공받을 수 있는 나쁘지 않은 서비스이다. ProxyRotator 서비스를 이용해서 프록시 서버를 거..
2020.02.19 -
Imgur API를 이용해서 이미지 서버 운영 비용을 절약하자
티스토리나 네이버 블로그 등을 이용할 경우 게시물에 부담 없이 이미지를 첨부할 수 있지만 개인 서버를 운영하게 된다면 사용자에게 이미지가 포함된 게시물을 제공하는것이 비용적으로 상당한 부담으로 다가온다. 그래서 나는 클라우드나 자체 파일서버를 운영하지 않고 등록되는 이미지를 바로바로 Imgur 서버에 올리고 주어진 링크를 사용하는 방식을 선택했다. Imgur는 무료 이미지 호스팅 서비스인데 웹상에서 바로 이미지를 올리수도 있고 Imgur API를 제공하기 때문에 프로그램을 코드를 작성해서 이미지를 올릴수도 있다. 회원가입을 하고 세팅 페이지에 들어가서 App을 등록한 후 생성된 Client ID와 Client Secret값을 가지고 API를 이용할 수 있으며, API 문서 페이지에서 파이썬과 안드로이드,..
2020.02.18 -
맥북에 프록시 서버를 설치하고 외부 서버의 브라우저에서 프록시 사용하기
GCP Cloud Compute위에서 Selenium과 Pyautogui를 가지고 자동화 프로그램 하나를 돌리고 있는데 현시점까지 GCP에는 서울 리전이 제공되지 않은 상태여서 국내 IP상에서 실행되게 하고 싶은데 어떻게 할까 고민하다가 어차피 내가 작업을 하는 동안에만 돌릴 것이기 때문에 내 맥북에 프록시 서버를 설치하고 Selenium으로 브라우저를 실행할때 프록시를 사용하도록 설정했다. 맥용 프록시 서버인 SquidMan을 설치했고 Clients 메뉴에 Selenium이 돌아갈 서버의 IP를 등록해줬다. 사무실의 외부 아이피를 알아야 하기 때문에 파이썬으로 requests를 이용하여 http://api.ipify.org를 호출하는 간단한 스크립트를 작성했고 개인적으로 사용하는 AWS RDS에 key..
2020.02.17 -
ubuntu에 xrdp 기반으로 원격접속하기
ncloud에 ubuntu 가상서버를 생성하고 맥북에서 원격으로 접속하는 과정을 정리합니다. xRDP, XFCE4 설치 sudo apt-get update sudo apt-get install -y xrdp xfce4 ibus ibus-hangul fonts-nanum fonts-nanum-coding fonts-nanum-extra fonts-unfonts-core fonts-baekmuk fonts-nanum-eco fonts-unfonts-extra xfonts-baekmuk iBus 우분투 표준 한글입력기와 한글 폰트까지 설치합니다. xrdp 설정변경(startwm.sh) 아래와 같이 ./etc/X11/Xsession를 startxfce4로 대체합니다 /etc/xrdp/startwm.sh #!/b..
2019.12.20 -
우분투에 크롬과 크롬드라이버 설치
ubuntu 환경하에서 selenium으로 크롤링을 하기 위해서 chrome과 chromedriver를 설치하겠습니다. 의존성 라이브러리 설치 sudo apt-get install unzip libnss3-dev chromium-browser 크로미움 브라우저 설치 sudo apt-get install chromium-browser sudo apt-get install chromium-browser chromedriver 설치된 크로미움 브라우저의 버전을 확인하고 버전에 맞는 크롬드라이버를 링크에서 리눅스용 다운로드합니다. 저는 설치된 크로미움 브라우저 버전이 79.0.3945라서 크롬드라이버 버전도 79.0.3945.36 버전을 받았습니다. Downloads - ChromeDriver - WebDriv..
2019.12.20 -
django query get last n records #Python #Django #queryset
django query get last n records last_ten = Messages.objects.filter(since=since).order_by('-id')[:10] # You can pass your queryset to reversed: last_ten_in_ascending_order = reversed(last_ten) # Or use [::-1] instead of reversed last_ten = Messages.objects.filter(since=since).order_by('-id')[:10][::-1]
2019.11.13 -
우분투 위에 '프록시 서버 구축'하기 #Squid #Proxy
개요 GCP의 Compute Engine을 이용해서 웹상의 데이터를 수집하는 중 특정 사이트에서 한국 지역 IP에 대해서만 접속을 허용하고 있어서 수집에 차질이 생겼다. 무료 프록시는 불안하고 유료 프록시를 사용하기에는 비용이 아까워서 기존에 사용중이던 AWS의 한국리전 서버에 프록시를 설치하기로 했다. 참고로 현시점(2019년 11월)에서 GCP는 한국 리전을 지원하지 않고 있다. 환경 Google Cloud Platform Ubuntu 16.04 LTS Squid 설치 sudo apt install squid3 squid 설정 sudo vi /etc/squid/squid.conf http_access allow localhost와 http_access deny all을 주석처리하고 http_acces..
2019.11.03 -
Selenium 환경 설정 on windows 10 #Python #Selenium
콘솔창에서 파이썬을 실행시키고 selenium을 포함시켰을때 모듈을 찾을 수 없다는 메세지가 출력됨 pip install selenium 명령어를 실행하여 selenium 패키지를 설치한다. 간단하게 selenium 샘플 코드를 작성한다. 단순히 크롬 브라우저를 띄우고 유튜브 페이지를 띄우는 코드이다. chromedriver를 찾을 수 없다는 에러가 발생한다. 샘플 코드를 실행 했을 때 발생한 에러 메세지는 아래와 같다. Traceback (most recent call last): File "ex1.py", line 7, in driver = webdriver.Chrome('chromedriver') File "C:\Users\MiniPC\AppData\Local\Programs\Python\Pytho..
2019.09.03 -
Allow remote access to Elasticsearch / 일래스틱서치 원격 접속 허용하기
changes in /etc/elasticsearch/elasticsearch.yml: network.host: ["0.0.0.0"] cluster.initial_master_nodes: ["0.0.0.0"]
2019.08.18