✅ 오답노트 | 웹데이터 분석 퀴즈
module urllib
: 파이썬에서 url을 다루기 위한 모듈로 http, FTP, SMTP 와 같은 프로토콜을 사용하여 URL을 open, read, write를 함
.
urllib.request : url을 열고 데이터를 가져오는 기능을 제공
urllib.urlopen()
url을 열어 HTTPResponse 객체를 반환하는 함수, read() 메서드를 사용해서 응답 본문을 가져올 수 있다.
urlretreieve()
url에서 파일을 다운로드, 로컬 파일로 저장하는 함수. 매개변수로 다운 파일의 url, 저장 경로를 받는다.
Request : urllib.request.Request로, HTTP 요청을 만들기 위한 클래스(헤더, 쿠키 정보 설정 가능)
Request('url 문자열', '옵션을 나타내는 딕셔너리{헤더정보를 나타내는 문자열 : 해당 헤더 정보의 값}')
🔑 request 함수에서 header 정보에 chrome 등 브라우저 정보를 넣는 이유 => 접근하고자 하는 사이트에서 사용자가 일반적인 이용자인지 아닌지 확인하기 위해서
예) import urllib.request
import urllib.parse
url = 'https://www.example.com/search'
data = {'q' : 'python'}
data = urllib.parse.urlencode(data)
url = url + '?' + data
headers = {
'User-Agent' : "~~",
'Refere' : 'https://www.example.com'
}
req = urllib.request.Request(url, headers = headers)
response = urllib.request.urlopen(req)
html = response.read()
.
urllib.parse : url를 구성 요소로 분리하고 url을 인코딩하고 디코딩하며 url 쿼리 문자열을 구문 분석하는 기능
quote()
url 완전 문자열로 인코딩하기 위해 사용, url에 포함될 수 없는 문자를 처리하는데 사용
unquote()
url 완전 문자열을 디코딩하기 위해서 사용
urllib quote 함수 주소에 한글이 포함된 경우 인코딩을 맞춰준다.
urljoin(base, url, allow_gragments = True)
base URL 과 다른 url을 결합한다. 🔑상대주소와 절대주소에 대해 잘 대응하며, 상대주소를 절대주소로 변환해준다.
Regular Expression Metacharacters
\d
0 ~ 9까지의 숫자와 일치하는 메타문자(문자열 일치를 위한)
\D
숫자가 아닌 모든 단어와 일치 (\d
와 반대)
\w
모든 단어와 일치(az, AZ, 0-9, _)
\W
단어가 아닌 모든 문자와 일치
\s
스페이스바, 탭, return을 포함한 모든 공백과 일치
000 - 0000 - 0000 => \d+\s-\s\d+\s-\s\d+