[Python] 웹 스크래핑 : 같은 태그명의 정보를 가져오는 방법

2023. 11. 2. 11:51·Project/Personal & Toy
728x90

 

같은 태그명의 데이터 가져오는 방법 : index 사용하기

 

웹 스크래핑 프로젝트 중 네이버에서 오늘 날씨 정보를 가져오고 있었다. 

출처 - 네이버 날씨

 

그중에서 오전과 오후를 나눠 각각 강수확률을 가져오려는데, 아래 사진과 같이 오전과 오후가 같은 태그명인 것을 발견했다. 

출처 - 네이버 개발자 도구

여태까지 공부해 온 것은 Java 언어였기 때문에 파이썬 언어가 익숙지 않아서 

어떻게 해결해야할까 고민을 했다. 

검색을 통해 get_text( )가 공백을 포함하여 문자열을 받는 것을 알게 되었다.

그렇다면, split( )을 통해 리스트에 각각 문자열을 담으면 되지 않을까 생각을 해보았다. 

그러나 

afternoon_rain_rate = soup.find("span"
, attrs={"class":"weather_inner"}).get_text().split()

위처럼 코드를 작성하니 ['오전', '10%', '구름많음'] 으로 오전에 대한 정보만 나오길래, 

weather_inner 태그가 2개여서 첫번째 태그 안에 담긴 정보만 가져오는 것을 알 수 있었다.

그래서 해당 태그를 모두 가져오는 함수를 찾아보니 find_all( ) 함수가 있어서 split( ) 을 통해 접근을 시도해보았다.

하지만, AttributeError 가 뜨면서 어떤 속성을 가져와야 할지 찾지 못하는 것을 알 수 있었다. 

그냥 afternoon_rain_rate( ) 변수 자체를 출력해보니 

출처 - is낫널

위 사진처럼 엄청나게 많은 태그를 갖고 있었다. 

weather_inner 태그를 갖는 것은 

출처 - 네이버 날씨

오늘 뿐만 아니라, 다른 요일에도 쓰여지고 있는 것이라는 것을 알 수 있었다. 

그래서 아래와 같이 index 로 접근해서 해결할 수 있었다.  

# 같은 클래스명을 공유해서 같은 클래스명을 가지는 태그를 모두 찾아서 변수에 담는다. 
rain_rate = soup.find_all("span", attrs={"class":"weather_inner"})

# 그 후 리스트의 인덱스로 접근하고 해당 리스트들이 문자로 이루어진 것을 생각하여 
# get_text() 로 접근하니, 출력이 잘 나오는 것을 확인할 수 있었다.
print(f"{rain_rate[0].get_text()} / {rain_rate[1].get_text()} ")
# -> 오전 10%  구름많음 / 오후 0%  맑음

 

728x90

'Project > Personal & Toy' 카테고리의 다른 글

[AWS Lambda] EventBridge 스케줄러를 활용한 카카오톡 API 메세지 전송  (0) 2023.11.14
[AWS Lambda] HTTP 403 Error : url forbidden 문제 해결  (1) 2023.11.14
[Python] 웹 스크래핑 : requests.exceptions.ConnectionError  (1) 2023.11.02
'Project/Personal & Toy' 카테고리의 다른 글
  • [AWS Lambda] EventBridge 스케줄러를 활용한 카카오톡 API 메세지 전송
  • [AWS Lambda] HTTP 403 Error : url forbidden 문제 해결
  • [Python] 웹 스크래핑 : requests.exceptions.ConnectionError
is낫널
is낫널
  • is낫널
    아직은 NULL NULL 합니다
    is낫널
  • 전체
    오늘
    어제
    • 분류 전체보기 (52)
      • Computer Science (12)
        • 운영체제 (3)
        • Java (4)
        • Spring (0)
        • 네트워크 (2)
        • 자료구조 및 알고리즘 (0)
        • 데이터베이스 (1)
      • Algorithm (10)
        • BOJ & SWEA (8)
        • Programmers (0)
        • 이론 (2)
      • Project (7)
        • Team (3)
        • Personal & Toy (4)
      • 사회인 준비생 (22)
        • SSAFY (5)
        • 이직 (1)
        • TIL (14)
      • 무작정 따라해보기 (1)
        • 블로그 (1)
  • 블로그 메뉴

    • 홈
    • 글쓰기
    • 태그
    • 방명록
    • 블로그 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    CPU의 구성요소
    sw적성진단
    코딩테스트
    비전공자
    백엔드 면접지식
    Java
    transiant
    백준
    백엔드
    HTTP
    그림자 문제
    개발
    딩코딩코
    LAMBDA
    알고리즘
    카카오톡API
    파이썬
    it세계의 괴물들
    인터럽트핸들러
    CS지식
    backend
    14510 나무 높이
    Roy Fielding
    문자열
    자바
    BOJ
    개발자
    개발공부
    AWS
    빈 라인
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
is낫널
[Python] 웹 스크래핑 : 같은 태그명의 정보를 가져오는 방법
상단으로

티스토리툴바