Python HTTP Request & Response 실습( urllib module )

2018. 1. 16. 19:44Python/Programming




[ 실습1 코드 ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import urllib.request
 
if __name__ = "__main__":
    url = "https://www.naver.com"
    req = urllib.request.Request(url)                # url요청 이후 req변수에 응답 저장
    sourcecode = urllib.request.urlopen(req).read()
 
    print(sourcecode)
 
    f = open("./response.txt","w")    # write mode로 파일 생성
    f.write( str(sourcecode) )        # 파일에 응답받은 소스코드 입력
    f.close()
 
cs


urllib.request.Request(URL) abstraction of a URL request

urllib.request.urlopen(URL)  Open URL object


[ 실습1 결과 ]


[ 실습2 코드 ]

1
2
3
4
5
6
7
8
9
10
11
12
import urllib.request
 
if __name__ = "__main__":
    url = "https://www.naver.com"
    req = urllib.request.Request(url)
    sourcecode = urllib.request.urlopen(req).read()
    
    f = open("./response_basic.html","wb")    #wb : byte형식
    f.write(sourcecode)                        #응답데이터 byte형식 그대로 입력
    f.close()
 
 
cs


[ 실습2 결과 ]

response_basic.html 파일이 하나 생성되었다. 해당 파일을 실행시키면 아래와 같이 요청한 네이버 홈페이지가 열린다



이렇게 urllib.request 모듈을 사용하여 HTTP요청과 응답을 주고 받을 수 있다

뿐만아니라, HTTP요청 시에 패킷의 Header를 직접 설정하여서 요청할 수 있다 ( 실습3 )


[ 실습3 코드 ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import urllib.request
 
if __name__ = "__main__":
    
    header = {'User-Agent''Mozilla/5.0 (Linux; Android 5.0.1; LG-F350S Build/LRX21Y) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/44.0.240.133 Mobile Safari/537.36',
                'Accept''text/html',
                'Accept-Charset''utf-8;q=0.7,*;q=0.3',
                'Accept-Encoding':'none',
                'Accept-Language':'en-US,en;q=0.8',
                'Connection':'kepp-alive'
                }
    
    url = "https://www.naver.com"
    req = urllib.request.Request(url, headers=header )
    sourcecode = urllib.request.urlopen(req).read()
    
    f = open("./response_Phone.html","wb")    #wb : byte형식
    f.write(sourcecode)                        #응답데이터 byte형식 그대로 입력
    f.close()
 
 
cs


User-Agent헤더값을 통해서 요청하고 있는 기기를 아이폰의 형식으로 전송하였습니다

응답페이지로 아이폰으로 네이버 홈페이지를 요청한 결과가 응답되어지는 모습을 확인할 수 있습니다


[ 실습3 결과 ]




* 참고 Window cmd창에서 파이썬 파일 실행시키는 법 * 


[1] C:>python 파일명

[2] python을 쓴 상태로 파이썬 파일을 cmd창에 드래그해서 사용가능