urllib라이브러리
-파이썬에서 웹의 데이터와 관련된 작업을 도와주는 라이브러리.
-내부에 총 4개의 모듈이 존재하며 그중 request 모듈을 가장 많이 사용. 사실 거의 request모듈만 쓴다.
모듈 종료 : request, error, parse, robotparser.
#urllib.request
-url이나 HTTP를 여는 데 사용되는 함수와 클래스가 있음.
-요청객체와 응답객체의 이름을 명확히 할 것.
-필자는 urllib.request.urlopen이나 request.get()로 서버에서 받은 응답(데이터)를 담는 객체를 응답객체라고 할 것이며
urllib.request.Request()로 만드는 요청을 담는 객체를 요청객체라고 하겠음. (정확한 용어사용인지는 잘 모르겠음)
#1.응답객체명 = urllib.request.urlopen(url주소 혹은 Resquest객체 둘 중 아무거나)
-웹에서 얻은 데이터에 대한 객체(응답객체)를 반환함.
-대부분 html문서 데이터를 반환 받음. 서버에 따라 json, xml등으로도 받을 수 있음.(ex.네이버API)
-utf-8로 인코딩하여 보냄.
1-1.응답객체.read()
-받아온 웹페이지의 데이터를 읽어온다.(html일 수도 json포맷일 수도 xml포맷일 수도)
-받아온 데이터를 문자열 변수에 저장하는게 일반적 사용법
-응답객체.read().decode('utf-8') 응답을 디코딩해 반환하는 법
1-2.응답객체.status
-성공적으로 url을 열면 200 출력. 서버가 요청을 제대로 처리했다는 의미.
1-3.응답객체.getheaders()
-서버에 대한 정보를 리스트로 반환해주는 함수. 다양한 정보를 확인할 수 있음.
#2. 요청객체명 = urllib.request.Request(url)
- Request객체를 만드는 클래스. 그냥 요청 객체를 만든다고 보면된다.
-만들어진 객체는 urllib.request.urlopen의 인자로 넣을 수 있음.
2-1. 요청객체명.add_header()
-요청객체에 해더 추가가능. (ex. 네이버 api같은 경우 클라이언트 id와 클라이언트 secret을 헤더를 요청객체에 담아 보내야함)
import urllib.request
url = 'https://runtimeerror44.tistory.com/'
request_form = urllib.request.Request(url)
response_form = urllib.request.urlopen(request_form)
print(response_form.status)
response_inf = response_form.read().decode('utf-8')
print(response_inf)
#3. urllib.request.urlretrieve(url, 파일이름)
- url에 접근하여 데이터를 로컬 컴퓨터에 저장. 이렇게 이미지 파일 저장가능. 물론 urlopen으로도 이미지 저장가능함.
import urllib.request
url = "이미지 url 주소"
file_name = '이름.확장자'
urllib.request.urlretrieve(url, file_name)
-urlopen으로 이미지 저장
import urllib
resp = urllib.request.urlopen('이미지url')
with open("이미지명.jpg", 'wb') as img_f: //모드는 이진모드로.
img_f.write(resp.read())
'PYTHON > 파이썬_라이브러리&모듈' 카테고리의 다른 글
| 파이썬 Selenium라이브러리1(+MacOS에서 설치팁, +바로꺼짐오류팁) (0) | 2022.05.12 |
|---|---|
| 파이썬 BeautifulSoup라이브러리 (0) | 2022.05.12 |
| 파이썬 time/ datetime모듈 (0) | 2022.05.11 |
| 파이썬 json라이브러리 (0) | 2022.05.09 |
| 파이썬 requests라이브러리 (0) | 2022.05.09 |