< 파이썬 크롤링 - Request, BeautifulSoup >

bsj_world·2022년 7월 2일
0

크롤링

목록 보기
2/3
post-thumbnail

"파이썬에서 제공하는 라이브러리를 통해 크롤링을 하게 된다. 크롤링이란 웹 사이트에서 원하는 정보를 추출하는 것으로서 정보의 바다라고 표현되는 이 시대에 꼭 필요한 기술이다."

import requests
from bs4 import BeautifulSoup // 라이브러리 임포트

response = requests.get("https://www.naver.com") // 웹페이지 가져오기
soup = BeautifulSoup(response.text, "html.parser") // 웹페이지 파싱하기
mydata = soup.find('title') // 필요한 데이터 추출하기
print(mydata.get_text()) // 추출한 데이터 활용하기
  • request랑 bs4, BeautifulSoup은 어떤 라이브러리야?

    • Requests
      파이썬 크롤링 프로그램을 만들때 가장 많이 사용되는 외부 라이브러리로 파이썬에서 웹서버에 접속하여 HTML 을 받아오기 위해 사용된다. 파이썬 설치시 기본적으로 제공되는 urllib 라이브러리보다 사용성이 편하고 속도가 빠른 장점이 있다.
    • BeautifulSoup
      다운로드된 HTML에서 우리가 원하는 데이터를 추출하기 위해 파싱 (어떤 문자열 데이터 속에서 필요한 데이터를 분석, 추출하는 방식)해야 한다. HTML을 분석 가능한 형태로 가공할 때 사용되는 가장 유명한 라이브러리가 BeautifulSoup 이다.
  • requests.get을 통헤 웹페이지 내용이 저장되는거야?
    맞다. 가져온 내용을 확인하는 방법은 두가지가 있는데

      1. 웹브라우저에서 오른쪽 클릭 + 페이지 소스 보기
      1. 라이브러리로 확인하기
      import requests
      res = requests.get('https://www.naver.com')
      res.content 
  • 'title' 자리에 필요한 데이터를 입력해서 찾을 수 있는거네?
    맞다. soup에 HTML파일을 파싱한 정보가 들어가고 soup.find() 함수를 통해 원하는 부분을 지정한다. 변수.get_text() 함수로 추출한 부분을 가져올 수 있다.

    • 오픈 크롬 개발자 모드에서 원하는 부분을 선택한다.
      Command + Alt + i (맥)
      Ctrl + Shift + i 또는 F12 (윈도우)

      mydata = soup.find('p', 'cssstyle')
      mydata = soup.find(id='body')
      
      paragraph_data = soup.find_all('p')
      for paragraph in paragraph_data:
      print(paragraph.get_text())
      

++ strip() 함수와 split() 함수를 통해 원하는 형태의 출력을 할 수도 있다.

참고링크 : https://blog.naver.com/nkj2001/222687225166

profile
일상과 함께 자연히 스며드는 사이트를 만들고자 합니다.

0개의 댓글