requests

http/https 통신

import requests

res = requests.get(url,
    headers={}
)
res.text

res = requests.post(url,
    data={ } # body
    headers={}
)
res.text

base64

import base64

# encode 시에는 string이 아닌 bytes를 건내야 한다. 결과는 bytes
base64.b64encode('string'.encode())
# b'c3RyaW5n

# decode 시에는 string, bytes 둘다 된다.
base64.b64decode('c3RyaW5n')
# b'string'

# 결과는 bytes이므로 decode()를 통해 string으로
base64.b64decode('c3RyaW5n').decode()
# 'string'

hashlib

sha1, sha256, md5 등 hash 함수 사용

input = 'data'.encode()
# b'data'

import hashlib
m = hashlib.new('sha1')
m.update(input)
hash1 = m.digest()
# b'\xa1|\x9a\xaaa\xe8\n\x1b\xf7\x1d\r\x85\n\xf4\xe5\xba\xa9\x80\x0b\xbd'
hash1.hex()
# a17c9aaa61e80a1bf71d0d850af4e5baa9800bbd

정규식 regex

import re
regex = re.compile('[0-9]+')

# match 함수는 문자열 시작부터 패턴에 맞는 부분을 찾는다.
m = regex.match('123')
matched = m is not None
print(matched) # True

# 전체가 패턴에 맞을 필요는 없다. 일부만이라도 패턴에 맞으면 통과한다.
m = regex.match('123 aa')
matched = m is not None
print(matched) # True
print(m.group()) # 123  : 매치되는 부분 출력

# 하지만 첫부분은 맞아야 한다.
m = regex.match('bb 123 aa')
matched = m is not None
print(matched) # False

# 전체 문자열이 패턴에 맞아야 한다면. 패턴에 \Z 를 추가하면 된다.
regex = re.compile('[0-9]+\\Z') # 혹은 r'[0-9]+\Z'
m = regex.match('123 aa')
matched = m is not None
print(matched) # False