KARIU의 IT 블로그

BeautifulSoup - <br>태그에서 텍스트 가져오기 (파싱이 제대로 안되는 문제 해결) 본문

프로그래밍 언어/Python Crawling

BeautifulSoup - <br>태그에서 텍스트 가져오기 (파싱이 제대로 안되는 문제 해결)

카리우 2021. 7. 16. 15:55
반응형

 

 파이썬으로 크롤링을 하다가 <br> 태그가 중간중간에 들어있는 단락을 가져오는데 첫 번째 줄만 가져와지지 않는 현상이 발생하였습니다. 열심히 인터넷을 뒤져서 해결하였는데 방법을 공유하고자 포스트를 작성하게 되었습니다.

 

 

  제가 가져와야할 텍스트입니다. 저 중에서 제목 아래에 있는 설명 부분을 가져와야 되는데 첫 줄은 가져와지지 않는 현상이 발생하였습니다.

 

 먼저 개발자도구(크롬에서 F12 누르기)를 켜서 HTML 코드를 확인해보면 아래와 같이 나옵니다.

 

 

 <div> 태그 안에 <p>태그로 제가 원하는 정보가 감싸져 있습니다. 평소에 하던 대로 크롤링 코드를 작성하여 긁어왔습니다.

 

형광박스가 결과

 

 실행 결과를 보시면 첫번째 줄에 있는 글은 가져오지 않고 두 번째 줄의 글만 가져오는 것을 확인하실 수 있습니다.

 

 아무래도 <p> 태그 안에 줄을 나눠주는 <br> 태그 때매 이러한 오류가 발생하는 것 같아 해결책을 찾아 나섰습니다.

 

 

 

 

 의외로 간단하게 해결할 수 있었습니다.

 바로 .find_all(text = True) 를 사용하시면 됩니다.

 이 마법의 코드를 사용하여 다시 프로그램을 돌려보겠습니다.

 

결과

 9번줄을 보시면 아까와 달리 뒤에 .find_all(text = True)가 추가 되었습니다.

 

 결과를 보니 리스트 형태로 모든 설명이 파싱 되어 들어간 것을 확인할 수 있습니다. 그런데 리스트의 맨 앞과 맨 뒤에 \n가 들어가 있네요. 이건 따로 가공하면 해결될 문제입니다. 

 

 리스트 형태로 저장되어 조금 불편할지도 모르겠지만 그래도 <br> 태그의 에러를 간단히 해결할 수 있어 다행입니다.

 

 

 

반응형
Comments