[파이썬] requests-html XPath 사용하기

requests-HTML logo

requests-HTML는 파이썬의 requests 라이브러리를 기반으로 한 웹 크롤링용 라이브러리입니다. 이 라이브러리는 간단한 방법으로 웹 페이지의 내용을 가져올 수 있으며, 특히 XPath를 이용하여 원하는 요소를 검색하고 추출하는 데 사용할 수 있습니다. 이번 블로그 포스트에서는 requests-HTML을 사용하여 XPath를 사용하는 방법에 대해 살펴보겠습니다.

requests-HTML 설치하기

먼저, requests-HTML을 설치해야 합니다. 다음 명령을 사용하여 requests-HTML을 설치할 수 있습니다:

pip install requests-html

웹 페이지 내용 가져오기

requests-HTML을 사용하여 웹 페이지의 내용을 가져오려면, 먼저 HTMLSession 객체를 만들어야 합니다. 이 객체는 웹 페이지와 통신하기 위한 세션을 나타냅니다. 다음은 기본적인 예시 코드입니다:

from requests_html import HTMLSession

session = HTMLSession()
response = session.get('https://example.com')

위 코드에서 get() 메소드를 사용하여 웹 페이지의 내용을 가져옵니다. request-html은 받은 HTML을 자동으로 파싱하여 파싱된 HTML 객체를 반환합니다.

XPath로 요소 검색하기

이제 웹 페이지의 내용을 가져왔으니, XPath를 사용하여 원하는 요소를 검색할 수 있습니다. xpath() 메소드를 사용하여 XPath를 적용할 수 있습니다. 다음은 예시 코드입니다:

from requests_html import HTMLSession

session = HTMLSession()
response = session.get('https://example.com')

# XPath로 요소 검색
matches = response.html.xpath('//h1')

위 코드에서 xpath() 메소드는 웹 페이지의 내용에 대해 주어진 XPath 식을 평가하고, 일치하는 모든 요소를 반환합니다. 이 경우, //h1은 페이지에서 모든 <h1> 요소를 찾습니다.

요소 내용 추출하기

원하는 요소를 검색했다면, text 속성을 사용하여 해당 요소의 내용을 추출할 수 있습니다. 다음은 예제 코드입니다:

from requests_html import HTMLSession

session = HTMLSession()
response = session.get('https://example.com')

# XPath로 요소 검색
matches = response.html.xpath('//h1')

# 요소 내용 추출
for match in matches:
    print(match.text)

위 코드에서 text 속성을 사용하여 각 요소의 내용을 가져와 출력합니다.

요소 속성 추출하기

요소의 속성을 추출하려면, attrs 속성을 사용해야 합니다. 이 속성은 해당 요소의 모든 속성을 담고 있는 딕셔너리입니다. 다음은 예시 코드입니다:

from requests_html import HTMLSession

session = HTMLSession()
response = session.get('https://example.com')

# XPath로 요소 검색
matches = response.html.xpath('//a')

# 요소 속성 추출
for match in matches:
    print(match.attrs['href'])

위 코드에서 attrs['href']를 사용하여 모든 <a> 태그의 href 속성을 추출합니다.

결론

이번 포스트에서는 requests-HTML을 사용하여 XPath를 사용하는 방법에 대해 알아보았습니다. requests-HTML은 간편한 사용법과 XPath의 강력한 검색 기능을 결합하여 웹 크롤링 작업을 단순화하는 데 도움이 됩니다. 이를 통해 웹 페이지의 원하는 데이터를 더 쉽게 추출할 수 있습니다. 추가 정보는 requests-HTML의 공식 문서를 참조하십시오.