Python HTTP Request & Response 실습( urllib module )
2018. 1. 16. 19:44ㆍPython/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창에 드래그해서 사용가능
'Python > Programming' 카테고리의 다른 글
BeautifulSoup 예제2 음원사이트 Genie 차트 순위 긁어오기 (0) | 2018.01.24 |
---|---|
Python을 이용한 이미지 다운로드 ( urlretrieve ) (1) | 2018.01.24 |
BeautifulSoup 예제1 네이버 실시간 검색어 긁어오기 (0) | 2018.01.24 |
BeautifulSoup (2) 검색 메서드 (0) | 2018.01.18 |
BeatifulSoup (1) 기본 메서드 (0) | 2018.01.16 |