본문 바로가기
공부 & 프로젝트/파이썬

[파이썬] 웹크래핑 활용 3-2 : BeautifulSoup4

by donnanoa82 2025. 10. 20.

영상에서는 네이버 웹툰을 가지고 연습했지만 ,,, 네이버 웹툰의 태그를 가지고 오지 못하는 상황이라 조금 내용 다르게 연습하려고 함

 

나도코딩 님의 영상 중: chapter. 12-13. BeautifulSoup4 활용 1-1 ~ 1-2

https://www.youtube.com/watch?v=yQ20jZwDjTE


 

해당 조건에 맞는 모든 정보 가지고 오기 

  • find : 그 조건에 해당하는 첫번째 값 출력
  • find all : 그 조건에 해당하는 모든 값 출력

find_all 을 통해 news에 넣고, for 문을 통해 new로 하나씩 뽑아서 get_text 하면 text만 추출

왼쪽의 뉴스명을 가지고 오려고 함. 해당 html은 우측 파란 박스와 같이 span class

news = soup.find_all("span", class_="container__headline-text")    # find_all : 그 조건에 해당하는 모든 것 가지고 옴
for new in news:
    print(new.get_text())

terminal 에 잘 출력된 값 확인 가능 (저 중에서 Pakistan and Afghanistan 명도 잘 나온 것을 확인할 수 있음)

 

 

여러 사건 사고들 목록 모두 가지고 와서, 첫 뉴스의 제목명 추출

일단 모든 목록에 해당하는 태그 가지고 와서 저장 

저장한 내용 중 X 번째에 해당하는 X 태그의 내용을 얻기 위해 headlines[X번째].X태크.get_text()

 

뉴스명은 strong 태그이므로 headlines들 중 첫번째의 strong의 텍스트 추출

headlines = soup.find_all("div", class_="sa_text")
title = headlines[0].strong.get_text()
print(title)

 

만약 전체 목록 추출하고, 그 중 몇 개만 출력 

예) 뉴스에서 제목과 링크만 출력

해당 주소는 a 클래스의 href에 있음

  • headlines 에 find_all을 통해 전체 목록 저장
  • for 문을 통해 한번씩 출력하도록 만듦
  • title 은 아까 전에 했던것과 같이 strong에 저장되어있으므로, headline.strong.get_text()
  • link는 위 이미지와 같이 a 클래스의 href에 저장되어있기에, headline.a["href"]
  • 뉴스명과 링크 출력 : print(title, link)
headlines = soup.find_all("div", class_="sa_text")
for headline in headlines:
    title = headline.strong.get_text()
    link = headline.a["href"]
    print(title, link)

결과값. 뉴스와 동일하게 나옴

 


위와 같이 하고 매번 실행하기에는 스크래핑할 때 불편 

=> 더 쉽게 하기 위해 terminal에서 python 입력 추천

한줄 한줄씩 실행하여 결과를 볼 수 있음

 

  • python인터프리터 언어
  • 보통은 컴파일/ 인터프리팅 방식이 있음
  • 컴파일 compile:
    • 코드 작성하면 컴퓨터가 알아들을 수 있는 내용으로 한번 변환된 이후, 실행
    • 영어책을 우리가 알아 들을 수 있는 한글로 번역하여 책을 읽는것
  • 인터프린터 interpreter:
    • 한줄씩 결과 확인 가능. 
    • 동시통역사가 있어서 외국인이 하는 말을 우리말로 바로 바꿔주는 것과 동일

위 사진과 같이 python 입력 후, 해주면 됨. 

print("hello")라고 쳤을 때, 바로 hello 나오고 / 오타로 print 대신 prit이라 하니 오류가 뜸. 그치만 바로 또 내용 실행 가능 (1+6)

 

근데 .. 나는 나도코딩님처럼 진행되지 않음 .. . 그래서 그냥 terminal 말고 위에서 작업할램 ㅎㅋ

 


Beautiful Soup 내용은 아래 링크를 통해 들어가보면 더 자세한 기능을 확인 가능

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