Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 urllib.request 모듈을 사용하여 인터넷에 액세스

<시간/>

소개

urllib.request를 사용합니다. Python의 모듈을 사용하여 가장 자주 HTTP 프로토콜을 사용하는 URL에 액세스하고 엽니다.

사용된 인터페이스는 초보자가 사용하고 배우기에도 매우 간단합니다. urlopen을 사용합니다. 다양한 프로토콜을 사용하여 다양한 URL을 가져올 수 있는 기능입니다.

다양한 기능을 사용하기 시작하면 우리가 어떤 작업을 하는지 더 잘 이해할 수 있을 것입니다. 자, 시작하겠습니다.

시작하기

urllib 라이브러리는 Python과 함께 패키지로 제공됩니다. 따라서 별도로 설치할 필요는 없으나, 환경에 추가하고 싶은데 아직 설치되어 있지 않다면 pip 패키지 관리자를 이용하여 설치하시면 됩니다.

터미널을 실행하고 아래 코드를 사용하십시오.

pip install urllib

설치가 완료되면 올바른 모듈을 가져와 스크립트 작성을 시작할 수 있습니다.

urllib.request 확인 중

우리는 가장 자주 urllib.request를 사용하여 데이터 또는 페이지의 소스 코드를 열고 읽습니다. 이는 API에서 데이터를 검색하려는 경우 특히 유용합니다. 예를 들어,

import urllib.request
request_url = urllib.request.urlopen('https://official−joke−api.appspot.com/random_ten')

위의 코드 줄은 joke api를 열고 데이터를 읽습니다.

내용을 인쇄하고 싶다면 −

를 사용할 수 있습니다.
print(request_url.read())

참고 - 이것은 바이트 형식으로 값을 출력합니다. 일반 텍스트를 원하시면 디코드 기능을 사용하세요.

print(request_url.read().decode())

API에서 데이터를 저장한 다음 나중에 RegEx를 사용하여 구문 분석하여 필수 데이터만 얻을 수도 있습니다.

import urllib.request
data = urllib.request.urlopen('https://official−joke−api.appspot.com/random_ten')
data = data.read().decode()
print(data)
file = open("content.txt", "w+")
file.write(data)
file.close()

참고 − FTP, HTTPS 등 다양한 프로토콜로 URL에 액세스할 수 있습니다. urlopen 다른 모든 프로토콜에 대해 똑같은 방식으로 작동합니다.

URL로 데이터 보내기

Common Gateway Interface로 작업하는 경우 데이터를 URL로 보낼 수 있습니다. 이것은 POST 요청을 보내는 HTTP에서 작동하는 방식과 유사합니다.

urllib.parse 모듈과 함께 urllib.request를 사용하여 이를 달성할 수 있습니다.

먼저 모듈을 가져오도록 합시다.

import urllib.parse
import urllib.request
url = 'https://www.google.com/cgi-bin/register.cgi'
values = {'name' : 'S Vijay Balaji', language' : 'Python' }
data = urllib.parse.urlencode(values)
data = data.encode('ascii')
req = urllib.request.Request(url, data)
with urllib.request.urlopen(req) as response:
   the_page = response.read()

그러면 제공된 URL에서 소스 코드가 인쇄됩니다.

결론

urllib.request 모듈은 인터넷 리소스를 검색하고 데이터를 얻을 수 있다는 점에서 매우 유용합니다.

API에서 데이터를 구문 분석하거나 웹 페이지의 소스 코드를 통해 콘텐츠를 스크랩할 때 유용합니다.

urllib.request가 다양한 API에서 데이터를 추출하는 데 사용된 프로젝트 - https://github.com/SVijayB/Steam_WebScraper.

urllib.request 모듈에는 다양한 다른 기능이 있습니다. 궁금하고 더 자세히 알고 싶다면 https://docs.python.org/3/library/urllib.request.html에서 공식 문서를 참조하십시오.