BeautifulSoup으로 웹 스크레이퍼 만들기 - 전체 가이드
게시 됨: 2024-03-19웹 데이터의 힘을 활용하려는 사람들에게 BeautifulSoup은 강력하고 직관적인 도구입니다. 이 Python 라이브러리는 웹 스크래핑 목적으로 설계되어 웹 페이지에서 특정 정보를 쉽게 추출할 수 있습니다. 이 가이드는 BeautifulSoup을 사용하여 웹 스크레이퍼를 만드는 과정, beautifulsoup을 사용하여 웹 스크레이핑하는 과정, 환경 설정부터 필요한 데이터 구문 분석 및 추출까지.
BeautifulSoup을 사용한 웹 스크래핑 소개
웹 스크래핑은 World Wide Web에서 프로그래밍 방식으로 정보를 수집하는 프로세스입니다. 이는 데이터 마이닝, 정보 수집 및 자동화 작업에 사용되는 귀중한 기술입니다. Python의 요청 라이브러리와 결합된 BeautifulSoup은 웹 스크래핑에 대한 간단한 접근 방식을 제공하므로 모든 수준의 프로그래머가 액세스할 수 있습니다. BeautifulSoup을 사용한 웹 스크랩에는 다양한 전제 조건이 포함됩니다.
전제조건
BeautifulSoup을 시작하기 전에 다음 전제 조건이 충족되었는지 확인하세요.
- Python 프로그래밍에 대한 기본 지식.
- 시스템에 Python이 설치되어 있습니다.
- HTML 및 웹페이지 구조에 대한 지식이 있어야 합니다.
환경 설정
- Python 설치 : Python이 시스템에 설치되어 있는지 확인하십시오. 향상된 기능과 지원을 위해 Python 3을 권장합니다.
- BeautifulSoup 및 요청 설치 : 명령줄이나 터미널을 열고 Python의 패키지 설치 프로그램인 pip를 사용하여 필요한 라이브러리를 설치합니다. 다음 명령을 실행하십시오.
pip로 beautifulsoup4 설치
pip 설치 요청
첫 번째 웹 스크레이퍼 만들기
BeautifulSoup으로 첫 번째 웹 스크레이퍼를 만드는 것은 웹에서 데이터 추출의 세계로 들어가는 흥미로운 단계입니다. 이 가이드는 Python과 BeautifulSoup을 사용하여 웹 콘텐츠를 효율적으로 가져오고 구문 분석하는 간단한 스크레이퍼를 설정하는 기본 사항을 안내합니다. 웹 스크래핑 기술을 연습하기 위해 고안된 웹사이트인 "http://quotes.toscrape.com"에서 인용문을 스크랩해 보겠습니다.
1단계: Python 환경 설정
컴퓨터에 Python이 설치되어 있는지 확인하세요. 또한 두 가지 주요 라이브러리, 즉 웹 페이지를 얻기 위한 HTTP 요청 요청과 HTML 콘텐츠 구문 분석을 위한 beautifulsoup4가 필요합니다.
아직 이러한 라이브러리를 설치하지 않았다면 Python의 패키지 설치 프로그램인 pip를 사용하여 설치할 수 있습니다. 터미널이나 명령 프롬프트를 열고 다음 명령을 실행합니다.
pip로 beautifulsoup4 설치
pip 설치 요청
2단계: 웹 페이지 가져오기
BeautifulSoup으로 웹 스크레이핑을 하려면 먼저 스크레이핑하려는 페이지의 HTML 콘텐츠를 가져오는 Python 스크립트를 작성하세요. 이 경우 “http://quotes.toscrape.com”에서 인용문을 가져옵니다.
수입요청
# 스크랩하려는 웹사이트의 URL
url = 'http://quotes.toscrape.com'
# 요청 라이브러리를 사용하여 웹사이트의 콘텐츠를 가져옵니다.
응답 = 요청.get(url)
# 요청이 성공했는지 확인
response.status_code == 200인 경우:
print("웹페이지를 성공적으로 가져왔습니다!")
또 다른:
print("웹페이지를 가져오지 못했습니다.")
3단계: BeautifulSoup를 사용하여 HTML 콘텐츠 구문 분석
웹페이지를 가져온 후 다음 단계는 HTML 콘텐츠를 구문 분석하는 것입니다. BeautifulSoup은 이 작업을 간단하게 만듭니다. BeautifulSoup 객체를 생성하고 이를 사용하여 응답 텍스트를 구문 분석합니다.
bs4에서 가져오기 BeautifulSoup
# BeautifulSoup 객체를 생성하고 파서를 지정합니다.
수프 = BeautifulSoup(response.text, 'html.parser')
# 구조를 보려면 예쁜 HTML을 인쇄하세요.
인쇄(soup.pretify())
4단계: HTML에서 데이터 추출
이제 HTML을 구문 분석했으므로 관심 있는 데이터 추출을 시작할 수 있습니다. 페이지에서 모든 인용문을 추출해 보겠습니다.
# 'text' 클래스가 있는 모든 <span> 요소를 찾아 반복합니다.
따옴표 = 수프.find_all('span', class_='text')
따옴표 안의 인용문:
# 각 <span>의 텍스트 내용을 인쇄합니다.
인쇄(quote.text)
이 코드 조각은 페이지에 따옴표가 포함된 클래스 텍스트가 있는 모든 <span> 요소를 찾아 해당 텍스트 콘텐츠를 인쇄합니다.
5단계: 더 나아가기
인용문 작성자와 같은 기타 정보도 추출할 수 있습니다.
# 'author' 클래스가 있는 모든 <small> 요소를 찾습니다.
저자 = Soup.find_all('small', class_='author')
저자의 저자:
# 작성자 이름이 포함된 각 <small>의 텍스트 내용을 인쇄합니다.
인쇄(저자.텍스트)
그러면 추출한 인용문에 해당하는 각 저자의 이름이 인쇄됩니다.
모범 사례 및 고려 사항
- Robots.txt 존중 : 스크래핑하기 전에 항상 웹사이트(예: http://quotes.toscrape.com/robots.txt)의 robots.txt 파일을 확인하세요. 웹사이트의 스크래핑 정책을 알려줍니다.
- 예외 처리 : 코드가 네트워크 오류나 유효하지 않은 응답을 정상적으로 처리하는지 확인하세요.
- 속도 제한 : 차단되지 않도록 웹사이트에 보내는 요청 수에 주의하세요.
- 법적 고려사항 : 웹 스크래핑의 법적 의미를 인지하고 귀하의 활동이 관련 법률 및 웹사이트 서비스 약관을 준수하는지 확인하십시오.
결론
단순성과 강력한 기능을 갖춘 BeautifulSoup은 웹에서 데이터를 추출할 수 있는 가능성의 세계를 열어줍니다. 분석을 위한 데이터 수집, 변경 사항에 대한 웹사이트 모니터링, 작업 자동화 등 무엇을 하든 BeautifulSoup을 사용한 웹 스크래핑은 프로그래밍 툴킷에서 매우 귀중한 기술입니다. 웹 스크래핑 여정을 시작할 때 상호 작용하는 웹 사이트를 존중하면서 책임감 있고 윤리적으로 스크레이핑하는 것을 잊지 마십시오. 즐거운 스크래핑을 즐겨보세요!