>  기사  >  백엔드 개발  >  urllib.request 모듈을 사용하여 Python 3.x에서 HTTP 요청을 보내는 방법

urllib.request 모듈을 사용하여 Python 3.x에서 HTTP 요청을 보내는 방법

王林
王林원래의
2023-07-30 11:21:281530검색

Python 3.x에서 urllib.request 모듈을 사용하여 HTTP 요청을 보내는 방법

실제 개발 과정에서는 서버와 상호 작용하기 위해 HTTP 요청을 보내야 하는 경우가 많습니다. Python은 URL 요청을 처리하기 위한 Python 표준 라이브러리의 모듈 중 하나인 urllib.request 모듈을 제공합니다. 이 기사에서는 urllib.request 모듈을 사용하여 HTTP 요청을 보내는 방법을 알아봅니다.

urllib.request 모듈 개요

urllib.request 모듈은 Python3에 내장된 HTTP 요청 모듈로, HTTP 요청을 보내고 처리하는 일련의 메서드를 제공합니다. GET 요청 및 POST 요청과 같은 일반적인 HTTP 요청 방법을 구현할 수 있으며 요청 헤더, 양식 데이터, 쿠키 및 기타 기능 설정도 지원합니다.

urllib.request 모듈을 사용하려면 먼저 이를 가져와야 합니다.

import urllib.request

그런 다음 urllib.request 모듈의 메서드를 사용하여 HTTP 요청을 보낼 수 있습니다.

GET 요청 보내기

GET 요청을 보내고 서버 응답 내용을 얻으려면 urllib.request 모듈의 urlopen() 메서드를 사용할 수 있습니다. 예는 다음과 같습니다.

import urllib.request

# 发送 GET 请求
response = urllib.request.urlopen('http://www.example.com')

# 获取服务器响应的内容
content = response.read()

# 打印服务器响应的内容
print(content)

이 예에서는 먼저 urlopen() 메서드를 사용하여 GET 요청을 보내고 요청된 URL은 http://www.example.com입니다. 그런 다음 response.read() 메서드를 호출하여 서버 응답 내용을 가져왔습니다. 마지막으로 print() 메소드를 사용하여 내용을 인쇄합니다.

POST 요청 보내기

POST 요청을 보내고 양식 데이터를 업로드하려면 urllib.request.Request 객체를 구성하고 urlopen() 메서드를 사용하여 요청을 보낼 수 있습니다. 예는 다음과 같습니다.

import urllib.request
import urllib.parse

# 构造表单数据
data = urllib.parse.urlencode({'key1': 'value1', 'key2': 'value2'}).encode()

# 构造请求对象
request = urllib.request.Request('http://www.example.com', data)

# 发送 POST 请求
response = urllib.request.urlopen(request)

# 获取服务器响应的内容
content = response.read()

# 打印服务器响应的内容
print(content)

이 예에서는 먼저 urllib.parse.urlencode() 메서드를 사용하여 양식 데이터를 구성합니다. 그런 다음 encode() 메서드를 사용하여 이를 바이트 스트림으로 변환합니다. 다음으로 urllib.request.Request 객체를 생성하고 여기에 URL과 양식 데이터를 매개변수로 전달합니다. 마지막으로 urlopen() 메서드를 사용하여 요청을 보내고 서버 응답 내용을 가져옵니다.

요청 헤더 설정

User-Agent, Referer 및 기타 정보와 같은 요청 헤더를 설정해야 하는 경우 urllib.request.Request 객체의 add_header() 메서드를 사용할 수 있습니다. 예는 다음과 같습니다.

import urllib.request

# 构造请求对象
request = urllib.request.Request('http://www.example.com')

# 设置请求头
request.add_header('User-Agent', 'Mozilla/5.0')

# 发送请求
response = urllib.request.urlopen(request)

이 예에서는 먼저 urllib.request.Request 객체를 구성하고 URL을 매개변수로 전달합니다. 그런 다음 add_header() 메서드를 사용하여 User-Agent 요청 헤더를 설정합니다. 마지막으로 urlopen() 메서드를 사용하여 요청이 전송됩니다.

요청 결과 처리

요청을 보낸 후 관련 응답 메서드를 호출하여 서버의 응답을 얻을 수 있습니다. 일반적으로 사용되는 방법은 다음과 같습니다.

  • response.read(): 서버 응답의 내용을 가져오고 바이트 스트림 형식으로 데이터를 반환합니다.
  • response.getheaders(): 서버 응답의 헤더 정보를 가져오고 목록을 반환합니다.
  • response.getheader(name): 지정된 이름의 응답 헤더 정보를 가져옵니다.

예제는 다음과 같습니다.

import urllib.request

# 发送 GET 请求
response = urllib.request.urlopen('http://www.example.com')

# 获取服务器响应的内容
content = response.read()

# 获取服务器响应的头信息
headers = response.getheaders()

# 获取指定名称的响应头信息
content_type = response.getheader('Content-Type')

# 打印结果
print(content)
print(headers)
print(content_type)

이 예에서는 먼저 GET 요청을 보내고 서버로부터 응답을 받습니다. 그런 다음 response.read(), response.getheaders() 및 response.getheader(name) 메서드를 각각 호출하여 서버 응답에서 지정된 이름의 콘텐츠, 헤더 정보 및 응답 헤더 정보를 가져왔습니다. 마지막으로 결과를 인쇄해 보세요.

요약

요약하자면, 우리는 urllib.request 모듈을 사용하여 HTTP 요청을 보내는 방법을 배웠습니다. urllib.request 모듈을 통해 GET 요청, POST 요청, 양식 데이터 업로드, 요청 헤더 설정 등을 쉽게 보낼 수 있습니다. 이는 서버와 상호 작용하고 데이터를 얻는 등의 작업에 매우 유용합니다.

이 기사가 모든 사람이 urllib.request 모듈을 이해하고 사용하는 데 도움이 되기를 바랍니다. 읽어 주셔서 감사합니다!

위 내용은 urllib.request 모듈을 사용하여 Python 3.x에서 HTTP 요청을 보내는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.