본문 바로가기
Crawling

정적 크롤링

by rubyda 2021. 1. 25.
728x90

정적 크롤링을 위한 도구들에 대해서 알아보도록 하겠습니다. 정적 크롤링 개념은 다음 글에서 확인할 수 있습니다.

 

jaaamj.tistory.com/101

 

크롤링 종류(정적 VS 동적)

크롤링이란? 크롤링(crawling) 또는 스크레이핑(scraping) 은 웹 페이지를 가져와서 데이터를 추출해 내는 방법을 말합니다. 이렇게 크롤링하는 소프트웨어를 크롤러(crawler) 라고 합니다. 크롤링

jaaamj.tistory.com

 

requests

 

requests 라이브러리는 파이썬에서 HTTP와 관련된 작업을 편하게 할 수 있도록 도와주는 라이브러리입니다.

- get() 함수

requests 라이브러리의 get() 함수는 웹 페이지의 내용을 요청하는 함수입니다. 사용 방법은 다음과 같습니다.

raw = requests.get('url 주소')

위의 결과를 print로 출력했을때 <Reponse [200]> 결과가 나오면 응답이 잘 되었다는 뜻입니다.

 

위의 결과를 눈으로 보고 싶으면 raw.text를 사용하면 텍스트 형식으로 볼 수 있습니다.

 

BeautifulSoup

BeautifulSoup 라이브러리는 HTML 문서를 탐색해서 원하는 부분만 쉽게 뽑아낼 수 있게 해주는 라이브러리입니다.

 

- BeautifulSoup

raw.text는 그냥 문자열 타입의 HTML 코드를 의미합니다. 따라서 실제 HTML 코드로 변화해주는 작업이 필요합니다. 이때 사용되는 함수가 BeautifulSoup()이고 사용 방법은 다음과 같습니다.

 

soup = BeautifulSoup(raw.text, 'html.parser')

 

- find VS find_all

 

(1) find

find() 함수는 원하는 결과값을 하나만 찾아줍니다.

 

(2) find_all

find_all() 함수는 원하는 모든 것을 가져옵니다.

 

find, find_all은 상황에 맞게 적절하게 사용해야 합니다.

 

 

 

 

예를들어 태그가 다음과 같이 구성되어 있다고 하고 3, 8, 17, 20, 27, 35숫자를 가져온다고 해봅시다. 우리는 find()를 사용해서 큰 틀인 <div class="nums"> 태그를 선택할 수 있습니다. 하지만 그 안에 숫자가 들어있느 <span>태그는 값이 여러개임을 볼 수 있습니다. 이때 find_all을 사용하는 것입니다.

 

'Crawling' 카테고리의 다른 글

selenium 내장함수  (0) 2021.01.25
HTML 구조  (0) 2021.01.17
크롤링 종류(정적 VS 동적)  (0) 2021.01.17