# HTML 응답 파싱 - Beautiful Soup * HTML 파싱: requests로 가져온 HTML 콘텐츠를 파싱하여 특정 요소를 추출하는 데 사용됩니다. * 예시: 웹 페이지에서 특정 태그의 내용을 추출하거나, CSS 선택자를 이용하여 원하는 데이터를 찾아낼 수 있습니다. - lxml * XML/HTML 파싱: Beautiful Soup보다 빠르고 강력한 성능을 제공합니다. XPath를 사용하여 복잡한 구조의 문서를 효율적으로 파싱할 수 있습니다. * 예시: XML 형식의 데이터를 처리하거나, 대규모 HTML 문서를 빠르게 파싱할 때 사용합니다. - pandas * 데이터 분석: requests로 가져온 JSON 또는 CSV 형식의 데이터를 pandas DataFrame으로 변환하여 데이터 분석을 수행할 수 있습니다. * 예시: 웹 API에서 가져온 데이터를 분석하고 시각화하는 데 사용합니다. - scrapy * 웹 크롤링: 웹 사이트를 크롤링하여 데이터를 추출하고 저장하는 데 특화된 프레임워크입니다. * 예시: 대규모 웹 사이트를 크롤링하여 데이터를 수집하고 분석할 때 사용합니다. - Parsel * CSS 선택자 기반의 HTML/XML 파싱 라이브러리: Beautiful Soup과 유사하지만 더욱 강력한 기능을 제공합니다. ## Beautiful Soup Beautiful Soup은 파이썬에서 HTML 및 XML 문서를 파싱하고 처리하기 위한 파서 라이브러리입니다. 웹 크롤링, 데이터 추출 등 다양한 작업에 활용되며, 복잡한 웹 페이지 구조를 쉽게 분석하고 원하는 정보를 추출할 수 있도록 도와줍니다. ```bash pip install beautifulsoup4 ``` ```python from bs4 import BeautifulSoup import requests # 웹 페이지 가져오기 response = requests.get("https://www.example.com") html = response.text # BeautifulSoup 객체 생성 soup = BeautifulSoup(html, 'html.parser') # 특정 태그 찾기 title = soup.title print(title.string) # 모든 링크 찾기 links = soup.find_all('a') for link in links: print(link.get('href')) ``` ### 주요 메서드 * find(): 특정 태그를 하나 찾습니다. * find_all(): 특정 태그를 모두 찾아 리스트로 반환합니다. * select(): CSS 선택자를 사용하여 요소를 찾습니다. * get_text(): 태그 내부의 텍스트를 추출합니다. * get(): 태그의 속성 값을 가져옵니다. ### 팁 * CSS 선택자 활용: CSS 선택자를 이용하면 복잡한 구조의 HTML 문서에서도 원하는 요소를 정확하게 찾을 수 있습니다. * 파서 선택: html.parser 외에도 lxml 등 다른 파서를 사용할 수 있습니다. lxml은 성능이 더 빠르지만 설치가 필요합니다. * 예외 처리: 네트워크 오류나 HTML 구조 변경 등 예상치 못한 상황에 대비하여 예외 처리를 해야 합니다. * XPath 사용: XPath를 사용하여 더욱 복잡한 XPath 표현식으로 요소를 선택할 수 있습니다.