Eggs Sunny Side Up
본문 바로가기
Web/Crawling

크롤링 기초

by guswn100059 2023. 4. 5.

requests 라이브러리 사용법

# 라이브러리 불러오기
import requests as req
# 서버에게 데이터를 요청 및 응답받기 위한 라이브러리
res = req.get('https://www.naver.com/')
# Response [200]번대 : 성공적으로 요청 및 응답을 받았다는 의미
# Response [400]번대 : 클라이언트(요청) 부분에서 오류가 발생했을 때
# Response [500]번대 : 서버(응답) 쪽에서 문제가 발생했을 때
res.text

 

BeautifulSoup 라이브러리 불러오기

from bs4 import BeautifulSoup as bs
# 컴퓨터가 이해할 수 있는 객체로 변경해주는 라이브러리
res.text
# bs(parsing할 html 문서, 'parsing할 방법')
# lxml : 빠르고 관대하기 때문
soup = bs(res.text, 'lxml')
soup

네이버페이지 정보를 가져와보자

  • 뉴스, 카페, 블로그 등과 같은 글자를 수집해보자.
# 태그의 위치를 찾는 방법
# 1. 내가 가져오고 싶은 contents 위에 마우스 우클릭 -> 검사
# 2. 개발자모드 상단에 커서 모양 아이콘 클릭 후 가져오고 싶은 컨텐츠 클릭
# a태그 가져오는 방법
soup.select('a')
# 페이지에 있는 모든 a태그가 가져와졌다.
# a태그 중에 클래스가 nav인 애들만 데려올거야
# select : 여러가지 요소를 복수형으로 가져와준다.
soup.select('a.nav')[0]
# select_one : 여러가지 요소 중에서 첫 번째 요소만 단수형으로 가져와준다.
soup.select_one('a.nav')
soup.select('a.nav')[2].text

 

데이터 수집 실습

  • 네이버 날씨에서 온도데이터 수집
res1 = req.get('https://search.naver.com/search.naver?where=nexearch&sm=top_sug.pre&fbm=1&acr=3&acq=%EB%84%A4%EC%9D%B4%EB%B2%84+%EB%82%A0%EC%94%A8&qdt=0&ie=utf8&query=%EB%84%A4%EC%9D%B4%EB%B2%84+%EB%82%A0%EC%94%A8')
res1.text
soup1 = bs(res1.text, 'lxml')
soup1
soup1.select('div.temperature_text')
soup1.select('div.temperature_text')[0].text
' 현재 온도9.4° '

 

'Web > Crawling' 카테고리의 다른 글

Gmarket 상품정보 수집  (0) 2023.04.10
한솥도시락 data 크롤링  (0) 2023.04.09
selenium 라이브러리  (0) 2023.04.09
웹페이지 데이터 수집  (0) 2023.04.06
멜론차트 TOP100 수집하기  (0) 2023.04.05

댓글