Akashic Records

웹 크롤링 개발을 위한 파이썬 준비 본문

Web Crawling for Beginners

웹 크롤링 개발을 위한 파이썬 준비

Andrew's Akashic Records 2024. 4. 23. 18:50
728x90

위는 파이썬 웹 크롤러 프로그램의 개념적 다이어그램을 나타낸 이미지입니다. 이 이미지는 컴퓨터 화면에 코드가 표시되고, 웹 서버와의 데이터 요청 및 응답을 상징하는 화살표가 흐름을 보여주는 모습을 단순하고 교육적인 스타일로 표현하고 있습니다. 컴퓨터는 'Web Crawler'로, 웹 서버는 'Website'로 레이블이 붙어 있습니다.

 

 

웹 크롤링을 위한 파이썬 개발 환경을 설정하는 것은 비교적 간단한 과정입니다. 아래의 단계를 따라 개발 환경을 설정해보세요:

 

1. 파이썬 설치

  • 파이썬 설치: 파이썬 공식 웹사이트(python.org)에서 최신 버전의 파이썬을 다운로드하고 설치합니다. 설치 과정에서 "Add Python to PATH" 옵션을 선택하면 편리합니다.

2. 텍스트 에디터 또는 IDE 설치

  • 텍스트 에디터: Visual Studio Code, Sublime Text, Atom 등이 좋은 선택입니다. 이들은 코드 작성을 용이하게 해주는 다양한 기능을 제공합니다.
  • IDE: PyCharm, Jupyter Notebook 등이 파이썬 개발에 널리 사용됩니다. PyCharm 같은 IDE는 파이썬 개발에 특화되어 있어 많은 편의 기능을 제공합니다.

3. 필요한 파이썬 패키지 설치

  • pip를 사용한 설치: 파이썬에는 패키지 관리자로 pip가 내장되어 있습니다. 웹 크롤링을 위해 주로 사용되는 패키지를 설치해보겠습니다. 명령 프롬프트나 터미널을 열고 다음 명령어를 입력하세요:
    pip install requests beautifulsoup4 lxml
    • requests: 웹 페이지의 내용을 가져올 때 사용합니다.
    • beautifulsoup4: HTML과 XML 파일을 파싱하기 위한 라이브러리입니다.
    • lxml: 파서(parser) 라이브러리로, BeautifulSoup에서 사용할 수 있습니다.

4. 가상 환경 설정 (선택적)

  • 가상 환경 사용: 여러 프로젝트 간의 패키지 버전 충돌을 방지하기 위해 각 프로젝트마다 독립적인 파이썬 환경을 설정할 수 있습니다. venv는 파이썬에서 제공하는 가상 환경 도구입니다. 프로젝트 디렉토리를 만들고, 그 안에서 다음 명령을 실행하세요:
    python -m venv waienv

    가상 환경을 활성화하려면 다음 명령을 사용하세요:
    • Windows:
      waienv\Scripts\activate
    • macOS/Linux:
      source waienv/bin/activate

5. 개발 환경 테스트

  • 간단한 스크립트 실행: 설치한 라이브러리가 잘 작동하는지 확인하기 위해 간단한 스크립트를 실행해볼 수 있습니다. 예를 들어, 특정 웹 페이지의 타이틀을 출력하는 스크립트를 작성해 보세요.

이제 웹 크롤링을 위한 기본적인 파이썬 개발 환경이 준비되었습니다.  이제 실제 웹 크롤링 스크립트를 작성해서 실행해 보겠습니다.

 

crawler_first.py

import requests
from bs4 import BeautifulSoup

def fetch_web_data(url):
    # URL에서 웹 페이지를 가져옵니다.
    response = requests.get(url)
    # 응답이 성공적인지 확인합니다. (HTTP 200 OK)
    if response.status_code == 200:
        return response.text
    else:
        return None

def extract_title(html_content):
    # HTML 컨텐츠를 파싱하여 BeautifulSoup 객체를 생성합니다.
    soup = BeautifulSoup(html_content, 'html.parser')
    # <title> 태그의 내용을 추출합니다.
    title_tag = soup.find('title')
    if title_tag:
        return title_tag.text
    else:
        return "No title found"

# 웹 페이지 URL
url = 'http://books.toscrape.com/'
html_content = fetch_web_data(url)

if html_content:
    title = extract_title(html_content)
    print("Page Title:", title)
else:
    print("Failed to retrieve the web page.")

 

실행결과

728x90
Comments