Python의 URL에서 데이터 가져오기

Vaibhav Vaibhav 2023년10월10일
Python의 URL에서 데이터 가져오기

URL 또는 Uniform Resource Locator는 인터넷을 통해 일부 리소스를 가리키는 유효하고 고유한 웹 주소입니다. 이 리소스는 간단한 텍스트 파일, zip 파일, exe 파일, 비디오, 이미지 또는 웹 페이지가 될 수 있습니다.

웹 페이지의 경우 HTML 또는 Hypertext Markup Language 콘텐츠를 가져옵니다. 이 기사에서는 Python을 사용하여 URL에서 이 HTML 또는 Hypertext Markup Language 데이터를 가져오는 방법을 보여줍니다.

Python의 requests 모듈을 사용하여 URL에서 데이터 가져오기

Python에는 HTTP(Hypertext Transfer Protocol) 요청을 쉽게 보내는 requests 모듈이 있습니다. 이 모듈은 HTML 콘텐츠 또는 유효한 URL에서 콘텐츠를 가져오는 데 사용할 수 있습니다.

requests 모듈에는 URL에서 데이터를 가져오는 데 사용할 수 있는 get() 메서드가 있습니다. 이 메소드는 url을 인수로 받아들이고 requests.Response 객체를 반환합니다.

requests.Response 개체에는 보낸 HTTP 요청에 대한 서버의 응답에 대한 세부 정보가 포함되어 있습니다. 이 get() 메서드에 잘못된 URL이 전달되면 get() 메서드는 ConnectionError 예외를 발생시킵니다.

URL의 유효성이 확실하지 않은 경우 tryexcept 블록을 사용하는 것이 좋습니다. tryexcept 블록 안에 get() 메서드 호출을 묶으면 됩니다. 이것은 다음 예제에서 설명될 것입니다.

이제 이 함수를 사용하여 유효한 URL에서 HTML 콘텐츠 또는 데이터를 가져오는 방법을 이해하겠습니다. 동일한 내용은 다음 코드를 참조하십시오.

requests.Response 객체에 대한 자세한 내용은 여기 공식 문서를 참조하세요.

import requests

try:
    url = "https://www.lipsum.com/feed/html"
    r = requests.get(url)
    print("HTML:\n", r.text)
except:
    print(
        "Invalid URL or some error occured while making the GET request to the specified URL"
    )

출력:

HTML:
...

...는 URL에서 가져온 HTML 콘텐츠를 나타냅니다. HTML 콘텐츠가 너무 커서 위의 출력에 표시되지 않았습니다.

URL에 오류가 있는 경우 위의 코드는 except 블록 내에서 코드를 실행합니다. 다음 코드는 작동 방식을 보여줍니다.

import requests

try:
    url = "https://www.thisisafaultyurl.com/faulty/url/"
    r = requests.get(url)
    print("HTML:\n", r.text)
except:
    print(
        "Invalid URL or some error occured while making the GET request to the specified URL"
    )

출력:

Invalid URL or some error occurred while making the GET request to the specified URL

일부 웹 페이지는 GET 요청이 보안을 위해 콘텐츠를 가져오는 것을 허용하지 않습니다. 이러한 경우 requests 모듈의 post() 메소드를 사용할 수 있습니다.

이름에서 알 수 있듯이 이 메서드는 POST 요청을 유효한 URL로 보냅니다. 이 메소드는 urldata라는 두 개의 인수를 허용합니다.

url은 대상 URL이고 data는 키-값 쌍 형식의 헤더 세부 정보 사전을 허용합니다. 헤더 세부 정보는 API 또는 애플리케이션 프로그래밍 인터페이스 키, CSRF 또는 Cross-Site Request Forgery 토큰 등이 될 수 있습니다.

이러한 경우에 대한 Python 코드는 다음과 같습니다.

import requests

try:
    url = "https://www.thisisaurl.com/that/accepts/post/requests/"
    payload = {
        "api-key": "my-api-key",
        # more key-value pairs
    }
    r = requests.post(url, data=payload)
    print("HTML:\n", r.text)
except:
    print(
        "Invalid URL or some error occured while making the POST request to the specified URL"
    )
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

관련 문장 - Python URL