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