[파이썬] 웹 페이지의 링크 추출과 탐색

파이썬을 사용하여 웹 페이지에서 링크를 추출하고 탐색하는 방법에 대해 알아보겠습니다.

라이브러리 설치

먼저, beautifulsoup4 라이브러리를 설치해야 합니다. 이 라이브러리는 웹 페이지의 HTML을 파싱하고 링크를 추출하기 위해 사용됩니다. 다음 명령어를 사용하여 라이브러리를 설치합니다.

pip install beautifulsoup4

웹 페이지의 링크 추출

다음은 파이썬을 사용하여 웹 페이지의 링크를 추출하는 예제 코드입니다.

import requests
from bs4 import BeautifulSoup

# 웹 페이지 URL
url = "https://example.com"

# HTTP GET 요청
response = requests.get(url)

# 페이지 내용을 BeautifulSoup 객체로 변환
soup = BeautifulSoup(response.content, "html.parser")

# 모든 링크 태그 (a 태그) 추출
links = soup.find_all("a")

# 링크 출력
for link in links:
    print(link["href"])

위 예제에서는 requests 라이브러리를 사용하여 웹 페이지에 HTTP GET 요청을 보내고, response 변수에 응답을 저장합니다. 그 후, beautifulsoup4 라이브러리를 사용하여 페이지 내용을 파싱하고, 모든 a 태그를 추출하여 출력합니다.

링크 탐색

링크를 추출한 후에는 해당 링크를 사용하여 다른 웹 페이지로 이동하고 탐색할 수 있습니다. 다음은 링크를 탐색하는 예제 코드입니다.

import requests
from bs4 import BeautifulSoup

# 웹 페이지 URL
url = "https://example.com"

# HTTP GET 요청
response = requests.get(url)

# 페이지 내용을 BeautifulSoup 객체로 변환
soup = BeautifulSoup(response.content, "html.parser")

# 모든 링크 태그 (a 태그) 추출
links = soup.find_all("a")

# 링크를 따라가며 탐색
for link in links:
    # 링크 URL 가져오기
    link_url = link["href"]

    # 링크 URL에 접속하여 페이지 내용 가져오기
    link_response = requests.get(link_url)
    link_soup = BeautifulSoup(link_response.content, "html.parser")

    # 가져온 페이지 내용을 기반으로 추가적인 탐색 수행

    # 예시: 페이지 제목 출력
    title = link_soup.find("title")
    if title:
        print(title.text)

위 예제에서는 링크를 따라가며 각 링크의 URL에 접속하여 페이지 내용을 가져옵니다. 가져온 페이지 내용을 link_soup 변수에 저장하고, 이를 기반으로 원하는 작업을 수행할 수 있습니다. 위 예제에서는 가져온 페이지의 제목을 출력하는 예시가 포함되어 있습니다.

정리

이제 웹 페이지의 링크 추출과 탐색에 대해 알아보았습니다. beautifulsoup4라이브러리를 사용하여 HTML을 파싱하고, 추출한 링크를 사용하여 다른 웹 페이지로 이동하고 탐색할 수 있습니다. 이를 활용하여 웹 스크래핑, 웹 크롤링 등 다양한 웹 관련 작업을 수행할 수 있습니다.