[카테고리:] Dev

Selenium <-> Requests간 쿠키 사용하기

웹 크롤링 시 Selenium과 requests에서 상호 쿠키를 사용할 필요가 있다. 아래 코드로 셀레니움으로 로그인 및 쿠키를 저장하고 활용해보자. from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager import requests import time import pickle def open_Driver(): options = Options() options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) …

라즈베리파이에서 크롤링을 위한 셀레니움(Selenium) 설정

1. 크롬드라이버 설치 pi@raspberrypi:~ $ sudo apt-get install chromium-chromedriver 2. 가상환경 생성 pi@raspberrypi:~ $ python -m venv .venv pi@raspberrypi:~ $ source .venv/bin/activate 3. 셀레니움, BeautifulSoup4 설치 (.venv) pi@raspberrypi:~ $ pip install selenium (.venv) pi@raspberrypi:~ $ pip install bs4 이제 아래 코드를 실행해서 ‘Google’ 이라고 나오는지 확인한다. from selenium import webdriver from selenium.webdriver.chrome.service import Service from …

Amazon Lightsail로 이전

블로그를 Cafe24 웹호스팅에서 Amazon lightsail로 이전했습니다. 이전하며 아래 부분이 놀라웠고 공부하는셈 치고 좀 더 써봐야겠습니다. 1. 클릭 몇번으로 워드프레스 설치가 그냥 되는구나? 2. 月 $3.5면 커피 한잔 값인데? (月 $5 짜리로 해야 워드프레스가 무리 없이 돌아가더라…) 3. 간단한 명령어로 SSL 설정(Let’s Encrypt), 게다가 주기적으로 인증서 갱신까지 자동으로?

python 쓰레드를 uWSGI로 서비스시 문제점

최근 python thread로 타이머를 구현, 이를 uWSGI로 서비스 하는 과정에서 thread가 동작하지 않아 관련 내용을 정리함. 예제코드는 아래와 같음. import time import threading from flask import Flask i = 0 def thread_run(): global i while True: i += 1 time.sleep(3) app = Flask(__name__) th = threading.Thread(target=thread_run) th.start() @app.route('/') def index(): return str(i) if __name__ == …

Flask 서비스를 위한 uWSGI + Nginx 설정

1. 필요 패키지 설치 $ sudo apt-get install python3 python3-pip nginx $ sudo pip3 install virtualenv $ sudo pip3 install uwsgi 2. Virtualenv 설정 $ virtualenv .server $ source .server/bin/activate (.server) $ pip3 install flask (.server) $ pip3 install uwsgi uwsgi를 또 설치한 이유는 코드에서 uWSGI decorators를 사용하기 위함임 3. Flask 코드 작성 # server.py …

ROBOCOPY 사용법

기본 사용법 robocopy 원본 대상 옵션 미러링 카피(/MIR) 하위 디렉토리까지 복사, 원본에 없는 파일이나 디렉토리를 자동 삭제. robocopy E:\사진모음 F:\사진모음 /MIR /LOG+:Backup_%date%.log 옵션 설명 ——————————————————————————- ROBOCOPY :: Windows용 견고한 파일 복사 ——————————————————————————- 시작됨: 2020년 2월 23일 일요일 오후 1:19:16 사용법 :: ROBOCOPY 원본 대상 [파일 [파일]…] [옵션] 원본 :: 원본 디렉터리(드라이브:\경로 또는 \\서버\공유\경로) 대상 :: …

Eclipse with PyDev

최근 Python 스크립트를 작성하는데 여러 함수와 클레스가 사용되는 스크립트라 Eclipse의 PyDev 플러그인을 이용하여 작성해 보았다. 나름 쓸만하였고 테마까지 셋팅해주니 앞으로 이것만 계속 쓸거 같은 느낌? 셋팅 과정에서 에러가 발생하는 부분이 있어 다음에 설치 시 삽질을 줄이고자 기록해 둔다. 1) 우선 이클립스를 다운로드 하자. Eclipse : http://www.eclipse.org 어떤 패키지도 상관없으나 난 PyDev만 사용할것이므로 용량이 제일 적은 …

Bruteforce 용 사전파일 생성

Bruteforce 용 사전 파일 생성 시 예제 코드 입니다. #!C:\Python27\Python.exe #-*- coding:utf-8 -*- import itertools alpha = '123' ''' 111 112 113 122 123 133 222 223 233 333 ''' for s in itertools.combinations_with_replacement(alpha, 3): output = ''.join(s) print output ''' 123 132 213 231 312 321 ''' for s in itertools.permutations(alpha, 3): output = …

Python EGG 확장자로 된 패키지 설치하기

여기서 설명하는 윈도우 환경이며 리눅스 환경도 유사할 것으로 보인다. 먼저 setuptools 라는 패키지가 필요하다. 아래 URL에서 다운로드 하여 설치하도록 하자. 다운로드 : http://pypi.python.org/pypi/setuptools 설치를 하면 아래 경로에 easy_install.exe 같은 파일이 생성된다. 생성되는 파일 : Python 설치경로\Scripts\easy_install.exe 해당 파일을 이용하여 아래와 같이 패키지를 설치 및 제거를 할 수 있다. 설치 : easy_install /my_downloads/OtherPackage-3.2.1-py2.3.egg 제거 : easy_install …