대표적인 표준 모듈
Modul |
Acitive |
re |
정규표현식 |
datetime |
날짜와 시간 |
collections |
여러가지 콜렉션 자료형 |
math |
수학 관련 |
random |
무작위 처리 |
itertools |
반복 가능한 객체에 대한 조작 |
sqlite3 |
SQLite데이터베이스 |
csv |
CSV조작 |
json |
JSON조작 |
os |
OS 관련 조작 |
os.path |
파일 또는 디렉터리 등의 경로와 관련된 조작 |
multiprocessing |
멀티 프로세스를 사용한 병렬 처리 |
subprocess |
다른 프로세스 실행 |
urllib |
URL 관련 조작 |
unittest |
단위 테스트 |
|
파이썬 디버거 |
sys |
파이썬 인터프리터 관련 변수와 함수 |
URL읽기
Urllib.request함수는 HTTPResponse자료형의 개체를 반환한다.
이객체는 파일 객체이므로 open()함수로 반환되는 파일 객체처럼 다루면 된다.
URL 읽기
>>>from urllib.request import urlopen
>>>f = urlopen('http://www.naver.com/')
>>>type(f)
>>>f.read()
>>>f.status
>>>f.getheader('Content-Type')
read()메서드로 HTTP응답 본문(bytes 자료형)을 추출
-
HTTP는 자동으로 닫히므로 close()함수를 호출하지 ㅇ낳아도 된다.
f.getheader #HTTP헤더의 값을 추출
* 한국어가 포홤된 페이지는 일밙거으로 다음과 같은 Content-Type헤더를 갖고 있다.
-
text/html; charset=UTF-8, cpc949
-
text/html; charset=EUC-KR
인코딩이 명시되지 않으면 UTF-8을 사용하면된다.
Meta tag 인코딩 방식 추출
HTTP 헤더에서 추출하는 인코딩 정보가 항상 맞는건 아니다. 웹서버 설정을 제대로 하지 않았다면 Content- Type헤더의 값과 실제 사용되고 있는 인코딩 형식이 다를 수 있다.
일반적인 브라우저 HTML내부의 meta태그 또는 응답 본문의 바이트열도 확인해서 최종적인 인코딩 방식을 결정하고 화면에 출력한다.
디코딩 처리 때 UnicodeDecodeError가 발생한다면 이러한 처리를 모방해서 구현하면 해결할 수 있다
형식
-
<meta charset=”utf-8”>
-
<meta http-equiv=”Content-Type” content=”text/html; charset=EUC_KR”>
'Computer > Python' 카테고리의 다른 글
Jupyter Notebook 커널 관리(목록, 추가, 삭제) (0) | 2020.11.25 |
---|---|
어몽어스 캐릭터를 파이썬으로 그려보자 (0) | 2020.10.14 |
분기별 역대 라면 랭킹 스크랩핑(크롤링) 코드 : 파트2 (0) | 2020.03.22 |
[Python] 코로나바이러스 시각화 지도 히스토리 (0) | 2020.03.16 |
[Python] 코로나19 바이러스 지도에 히스토리 표현하기 (0) | 2020.03.11 |