[파이썬] requests-html 스크레이핑 로직의 유닛 테스트

스크레이핑은 웹페이지에서 데이터를 추출하는 과정을 말합니다. Python에서 requests-html 라이브러리는 웹페이지 스크레이핑에 유용한 기능을 제공합니다.

이런 스크레이핑 로직을 개발할 때, 유닛 테스트는 매우 중요한 역할을 합니다. 유닛 테스트를 통해 로직을 견고하게 만들고 버그를 방지할 수 있습니다.

이번 블로그 포스트에서는 requests-html 스크레이핑 로직의 유닛 테스트를 어떻게 작성하는지 알아보겠습니다.

유닛 테스트란?

유닛 테스트는 프로그램의 작은 부분인 유닛들을 테스트하는 과정입니다. 각 유닛은 독립적으로 작동하며, 특정 기능을 수행합니다. 이 테스트는 프로그램이 제대로 작동하는지 확인하고, 예상치 못한 오류나 버그를 찾을 수 있습니다.

requests-html 스크레이핑 로직의 유닛 테스트 작성하기

  1. 테스트 환경 설정

    첫 번째 단계는 테스트 환경을 설정하는 것입니다. requests-html 라이브러리를 설치하고, 필요한 의존성 패키지를 임포트해야 합니다. 다음과 같은 명령어로 requests-html을 설치할 수 있습니다:

    pip install requests-html
    

    그리고 다음처럼 필요한 패키지를 임포트합니다:

    from requests_html import HTMLSession
    import pytest
    
  2. 스크레이핑 로직 작성

    두 번째 단계는 스크레이핑할 웹페이지에서 데이터를 추출하는 로직을 작성하는 것입니다. requests-html을 사용하여 웹페이지에 접속하고, 필요한 정보를 가져오는 코드를 작성합니다.

    def get_title(url):
        session = HTMLSession()
        response = session.get(url)
        title = response.html.find('h1')[0].text
        return title
    
  3. 유닛 테스트 작성

    이제 작성한 스크레이핑 로직에 대한 유닛 테스트를 작성해보겠습니다. pytest 라이브러리를 사용하여 간단한 테스트를 작성할 수 있습니다.

    def test_get_title():
        url = 'https://www.example.com'
        title = get_title(url)
        assert title == 'Example Domain'
    

    이 예제에서는 ‘https://www.example.com’ 웹페이지의 제목이 ‘Example Domain’인지 확인하는 테스트를 작성했습니다. assert 문을 사용하여 실제 제목과 예상한 제목을 비교합니다.

  4. 테스트 실행

    테스트를 실행하려면 pytest 명령어를 사용합니다. 이제 터미널에서 다음과 같이 입력하여 테스트를 실행해보세요:

    pytest
    

    결과는 성공 또는 실패로 나타날 것입니다. 테스트가 실패하면 로직에 오류가 있는 것이므로, 이를 수정하여 다시 테스트해야 합니다.

마무리

requests-html 라이브러리를 사용한 스크레이핑 로직의 유닛 테스트를 작성하는 방법을 알아보았습니다. 유닛 테스트를 통해 스크레이핑 로직을 확실히 검증하고, 버그를 최소화할 수 있습니다. 이를 통해 안정적이고 신뢰할 수 있는 스크레이핑 로직을 개발할 수 있습니다.