반응형

여기서는 우리가 BeautifulSoup 라이브러리를 통해서 어떻게 태그의 문자열에 접근을 하고 해당 문자열을 어떻게 수정할 수 있는지 살펴보겠습니다. 

 

| 스크래핑 대상 HTML문서 확인

 

실제로는 requests 등의 모듈을 이용해서 직접 웹사이트에 요청을 해서 html문서를 response(응답) 받습니다. 하지만 여기서는 예제를 간단하게 하기 위해서 아래의 html문서를 python 파일과 동일한 위치(같은 폴더 안)에 두고 예제를 진행하겠습니다.

 

웹사이트에 요청을 하는 과정이 궁금하신 경우는 아래의 링크를 참고해 주세요.

requests로 서버에 요청하기(웹스크래핑)

 

soup_html.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>BeautifulSoup</title>
    </head>
    <body>
        <div>
            <p>first div</p>
        </div>
        <div>
            <p>second div</p>
        </div>
    </body>
</html>

 

 

| BeautifulSoup 라이브러리 임포트하기

 

시작은 먼저 BeautifulSoup 라이브러리를 임포트 하는 것에서 시작합니다. 

from bs4 import BeautifulSoup

 

 

|  파일 읽어와서 BeautifulSoup으로 파싱하기

※파싱이란 데이터를 분해하고 재구조화하는 것을 의미합니다. 

 

먼저 python의 기본 함수들을 활용해서 html 파일을 읽어들이는 함수를 만들겠습니다.

 

def read_file():
  file = open('soup_html.html')
  data = file.read()
  file.close()
  return data

 

다음은 BeautifulSoup 라이브러리를 활용해서 파싱을 합니다.

 

soup = BeautifulSoup(read_file(), 'lxml')

※lxml이 설치되어 있지 않은 경우는 BeautifulSoup(finance_page.content,'html.parser')처럼 html.parser를 사용할 수 있습니다

이제 html문서에 접근할 수 있게 되었습니다. 

 

| title 태그의 문자열에 접근하기

 

title 태그의 문자열에는 아래와 같은 방법으로 접근할 수 있습니다. 

 

title = soup.title

print(title)

위에서 출력한 결과는 아래와 같이 html의 title 태그 안의 문자열이 됩니다. 

 

<title>BeautifulSoup</title>

 

 

| 접근한 title 태그 문자열 수정하기

 

접근해서 받아온 문자열은 replace_with()함수로 수정할 수 있습니다. 

 

title.string.replace_with("title has been changed")

print(title)

출력 결과를 통해서 title 태그 안의 문자열이 변경되었다는 것을 확인할 수 있습니다.

 

<title>title has been changed</title>

 

| 전체 코드

 

from bs4 import BeautifulSoup

def read_file():
    file = open('soup_html.html')
    data = file.read()
    file.close()
    return data
    
soup = BeautifulSoup(read_file(),'lxml')
 
title = soup.title 
print(title)

title.string.replace_with("title has been changed")
print(title)

 

참고 사이트

https://beautiful-soup-4.readthedocs.io/en/latest/

 

 

같이 보면 도움이 되는 글

왜 fake_useragent를 쓰는 거야?(웹 스크래핑)

request 할 때 타입아웃 설정하기(웹 스크래핑)

Beautifulsoup으로 html 받아오기(Python, 웹스크래핑, 웹크롤링)

 

 

웹 스프래핑과 웹 크롤링 관련 글 모음

 

웹 스크래핑 |웹 크롤링 코스

 

웹 스크래핑 |웹 크롤링 코스

| 웹 스크래핑 기초 requests로 서버에 요청하기(웹스크래핑) 왜 fake_useragent를 쓰는 거야?(웹 스크래핑) request 할 때 타입아웃 설정하기(웹 스크래핑) Beautifulsoup으로 html 받아오기(Python, 웹스크래핑,.

easytoread.tistory.com

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기