일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 디지털기초역량훈련
- 파이썬터틀
- 디스트럭처링
- es6
- 일본워킹홀리데이계획서
- 코딩 #개발자 #노마드북클럽 #노개북
- 노개북
- 중첩된객체
- 5장형식맞추기
- JavaScript
- 클린코드
- 바이트디그리
- 패스트캠퍼스
- 자바스크립트
- 3장함수
- 일본워홀서류
- 내일배움카드
- 파이썬
- 독후감
- css
- 9장단위테스트
- 플렉스박스
- 국비지원
- 웹개발자를위한자바스크립트의모든것
- python turtle
- python
- 7장오류처리
- 일러스트레이터강의
- flexbox
- 일본워킹홀리데이이유서
- Today
- Total
KARIU의 IT 블로그
BeautifulSoup - <br>태그에서 텍스트 가져오기 (파싱이 제대로 안되는 문제 해결) 본문
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> 태그의 에러를 간단히 해결할 수 있어 다행입니다.
'프로그래밍 언어 > Python Crawling' 카테고리의 다른 글
Python - 표 데이터 쉽게 크롤링하기 (1) | 2021.05.27 |
---|