[python] Requests-HTML로 웹 페이지의 사이트맵 파일 추출하기

웹 사이트의 사이트맵 파일은 웹 페이지의 구조를 제공하여 검색 엔진이 페이지를 쉽게 찾을 수 있도록 도와줍니다. 이번에는 Python의 Requests-HTML 라이브러리를 사용하여 웹 페이지의 사이트맵 파일을 추출하는 방법을 알아보겠습니다.

1. Requests-HTML 설치하기

먼저, Requests-HTML 라이브러리를 설치해야 합니다. 아래의 명령어를 실행하여 설치할 수 있습니다.

pip install requests-html

2. 사이트맵 URL 얻기

웹 사이트의 사이트맵 URL을 얻어야 합니다. 일반적으로 사이트맵 파일은 robots.txt 파일에서 찾을 수 있습니다. robots.txt 파일은 웹 사이트의 크롤링 규칙을 정의하는 텍스트 파일입니다. 아래의 코드를 사용하여 robots.txt 파일에서 사이트맵 URL을 찾을 수 있습니다.

from requests_html import HTMLSession

def find_sitemap_url(url):
    session = HTMLSession()
    response = session.get(url)
    response.html.render()

    sitemap_urls = response.html.xpath("//*/text()[normalize-space()='Sitemap:']/following-sibling::a[1]/text()")    
    if sitemap_urls:
        return sitemap_urls[0]
    else:
        return None

# 웹 사이트 URL을 입력하세요
url = "https://example.com"
sitemap_url = find_sitemap_url(url)

if sitemap_url:
    print("사이트맵 URL:", sitemap_url)
else:
    print("사이트맵 파일을 찾을 수 없습니다.")

3. 사이트맵 파일 다운로드

사이트맵 URL을 얻었다면, requests 라이브러리를 사용하여 사이트맵 파일을 다운로드할 수 있습니다. 아래의 코드를 사용하여 사이트맵 파일을 다운로드할 수 있습니다.

import requests

def download_sitemap(url, path):
    response = requests.get(url)
    with open(path, "wb") as file:
        file.write(response.content)

# 사이트맵 파일을 저장할 경로와 파일 이름을 입력하세요
sitemap_path = "sitemap.xml"
download_sitemap(sitemap_url, sitemap_path)
print("사이트맵 파일 다운로드 완료:", sitemap_path)

결론

위의 예제를 통해 Requests-HTML 라이브러리를 사용하여 웹 페이지의 사이트맵 파일을 추출하는 방법을 알아보았습니다. 이를 통해 웹 사이트의 구조를 더 잘 이해하고 검색 엔진 최적화를 위한 작업을 수행할 수 있습니다.