프로그래밍 기술/Django 웹 프로그래밍

10. URLLIB.REQUEST, RESPONSE 사용하기

언제나휴일 2019. 2. 15. 12:20
반응형

10. URLLIB.REQUEST, RESPONSE 사용하기


URLLIB.REQUEST, RESPONSE 사용하기



소스(demorequest.py)

import urllib.request

 

urladdr = "http://www.example.com"

oobj = urllib.request

resobj = oobj.urlopen(urladdr)

 

print("URL:%s"%resobj.geturl())

print("CODE:%s"%resobj.getcode())

print("INFO:%s"%resobj.info())

print("DATA:%s"%resobj.read().decode('utf-8'))

결과

URL:http://www.example.com

CODE:200

INFO:Accept-Ranges: bytes

Cache-Control: max-age=604800

Content-Type: text/html; charset=UTF-8

Date: Fri, 15 Feb 2019 02:18:10 GMT

Etag: "1541025663"

Expires: Fri, 22 Feb 2019 02:18:10 GMT

Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT

Server: ECS (sjc/4E52)

Vary: Accept-Encoding

X-Cache: HIT

Content-Length: 1270

Connection: close

 

 

DATA:<!doctype html>

<html>

<head>

    <title>Example Domain</title>

 

    <meta charset="utf-8" />

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <style type="text/css">

    body {

        background-color: #f0f0f2;

        margin: 0;

        padding: 0;

        font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;

       

    }

    div {

        width: 600px;

        margin: 5em auto;

        padding: 50px;

        background-color: #fff;

        border-radius: 1em;

    }

    a:link, a:visited {

        color: #38488f;

        text-decoration: none;

    }

    @media (max-width: 700px) {

        body {

            background-color: #fff;

        }

        div {

            width: auto;

            margin: 0 auto;

            border-radius: 0;

            padding: 1em;

        }

    }

    </style>   

</head>

 

<body>

<div>

    <h1>Example Domain</h1>

    <p>This domain is established to be used for illustrative examples in documents. You may use this

    domain in examples without prior coordination or asking for permission.</p>

    <p><a href="http://www.iana.org/domains/example">More information...</a></p>

</div>

</body>

</html>


urllib.request url 주소를 입력 인자로 받는 urlopen 메서들 제공합니다. urlopen 메서드를 호출하면 내부적으로 페이지를 요청하여 결과를 얻어와서 반환합니다.

urladdr = "http://www.example.com"

oobj = urllib.request

resobj = oobj.urlopen(urladdr)

 

response 개체는 url 주소를 얻어오는 geturl 메서드와 HTTP 프로토콜의 CODE값을 얻어오는 getcode 메서드와 정보를 제공하는 info 메서드, 결과 웹 페이지 내용을 반환하는 read() 메서드를 제공합니다. read 메서드에 의한 결과는 필요에 의해 디코드를 요구할 수 있습니다.

print("URL:%s"%resobj.geturl())

print("CODE:%s"%resobj.getcode())

print("INFO:%s"%resobj.info())

print("DATA:%s"%resobj.read().decode('utf-8'))

반응형