일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 검색엔진 노출
- 배민커넥트 후기
- 파이썬 제어문
- 파이썬 크롤링
- 파이썬 함수
- django
- 파이썬 함수 구조
- 파이썬 뷰티풀숩
- 드림호스트
- elementor
- 구글서치콘솔
- 파이썬 기초함수
- 파이썬 입출력 예제
- 파이썬 입력하기
- 파이썬 return
- DreamHost
- 배민커넥트 꿀팁
- 티스토리 등록
- 배민커넥트 도보
- 반응형 웹
- 배민커넥트 팁
- 파이썬 기초 함수
- pingendo
- 파이썬 기초
- 배민커넥트 시작
- 긴급재난지원금 사용처
- 파이썬 함수 형태
- 파이썬 함수호출
- 배민커넥트 효율
- 워드프레스 플러그인
WalkingBo의 걷는 정보
파이썬 크롤링 - 뷰티풀숩 기초 본문
앞선 포스트에서는 HTML의 모든 내용을 출력해보았습니다. 하지만 우리가 크롤링하는 목적은 나에게 유의미한 데이터를 출력하기 위해서입니다. 그래서 HTML의 모든 내용 중 필요한 부분을 찾아서 출력하려면 BeautifulSoup을 이용하는 것이 편리합니다.
1. BeautifulSoup 시작하기
import requests
from bs4 import BeautifulSoup
webpage = requests.get("https://news.naver.com/")
soup = BeautifulSoup(webpage.content,"html.parser")
print(soup)
먼저 from bs4 import BeautifulSoup로 라이브러리를 불러와 줍니다. 그리고 웹페이지를 요청하고 받아온 문서를. content로 지정합니다. 그리고 뒤에 있는 html.parser는 파싱 방법입니다. 이 외에도 여러 가지 파싱 방법이 있습니다.
결과적으로 다음과 같이 출력됩니다. 하지만 아직도 원하는 데이터를 선별하지는 못했습니다. 우리가 원하는 부분을 얻기 위해선, html의 문서를 잘 읽고 그 부분의 태그를 찾아주는 것이 쉬운 방법 중 하나입니다.
2. 태그(Tag) 탐색하기
먼저 a 태그만 찾아서 출력해보겠습니다. 아래와 같이 입력하면 첫 번째 태그를 찾아줍니다.
print(soup.a)
<a href="#lnb" tabindex="1"><span>메인 메뉴로 바로가기</span></a>
다음과 같이 써주면 태그 안의 내용만을 가져옵니다.
print(soup.p.string)
메인 메뉴로 바로가기
해당 태그의 내용은 모두 가져오고 싶다면 find_all()이라는 것을 사용합니다. 예를 들어서 print(soup.find_all("a")) 를 입력하고 실행하면 해당 HTML 문서 내의 a 태그는 모두 가져와서 출력하게 됩니다.
3. 웹사이트 구조 (feat. 개발자 도구)
위와 같이 텍스트를 뽑아서 태그를 보면서 웹사이트 구조를 확인하는 건 내용이 너무 많다면 힘든 일이 될 수 있습니다. 그래서 구조를 파악하기 위해서 개발자 도구를 이용하는 것이 좋습니다. 거의 모든 웹 브라우저는 개발자 도구를 사용할 수 있도록 되어 있고 크롬의 경우 F12를 누르면 개발자 도구 창이 표출됩니다. 그리고 내가 얻고 싶은 데이터 부분에 마우스를 올려놓으면 HTML 문서에서 해당하는 부분을 보여줍니다. 이렇게 활용하시면 더욱 편리하게 크롤링을 하실 수 있습니다.
다음 포스트에서는 BeautifulSoup의 여러 가지 방법을 통해서 데이터를 가져오는 법을 계속해서 작성해 보도록 하겠습니다.
'IT > 파이썬 및 장고' 카테고리의 다른 글
파이썬 제어문 - if (0) | 2020.05.25 |
---|---|
파이썬 크롤링 - 뷰티풀숩 select (3) | 2020.05.21 |
파이썬 크롤링(웹)-기초 (1) | 2020.05.19 |
파이썬 - 변수 (0) | 2020.05.17 |
파이썬 문자열 추출 (0) | 2020.05.15 |