📊 웹 스크래핑/크롤링 라이브러리


📌 R requests 이란?

  • requests
    - Python에서 간단하게 HTML 요청을 할 수 있는 라이브러리
    - 웹에 request를 요청하고 응답된 결과를 반환한다.

print(req) : 응답 상태 출력
print(req.text) : HTML DOM을 텍스트 형태로 가져옴

req = requests.get(url)
print(req.text)

  • User-Agent
    - 특정 웹페이지에서 비정상 접속을 제한할 수 있기 때문에 사용자 정보를 작성해야 한다.


📌 R urllib.request 이란?

  • urllib.request
    - requests와 동일한 기능
import urllib.request as req

data = req.urlopen(url).read().decode()		# 디코드
soup = BeautifulSoup(data, 'html.parser')

  • User-Agent
    - 특정 웹페이지에서 비정상 접속을 제한할 수 있기 때문에 사용자 정보를 작성해야 한다.


📌 R BeautifulSoup 이란?

  • BeautifulSoup
    - HTML 및 XML 파일에서 데이터를 가져오는 라이브러리
    - JSON 을 가져오는 것은 불가능
    - 가져왔을 때, 데이터를 BeautifulSoup 객체로 만든다.
soup = BeautifulSoup(req.text, 'html.parser')









📊 BeautifulSoup 제공 메소드


📌 R find() 메소드

  • find()
    - 지정한 요소 중 가장 처음에 나오는 태그를 가져온다.

  • 형식
    find(태그이름, attrs={'속성1':'속성값1', ....})
soup2.find('p', attrs={'id':'my'}).string
soup2.find(id='my').string
soup2.find(class='our').string
# 특정 페이지 문서 읽기
# 특정 페이지 문서 읽기
# 특정 페이지 문서 읽기


📌 R find_all() 메소드

  • find_all()
    - 지정한 조건에 부합하는 요소들을 전부 리스트 형태로 저장하여 반환한다.

  • 형식
    find_all(태그이름, attrs={'속성1':'속성값1', ....})
soup2.find_all('p')
# [<p>웹 문서 스크래핑</p>,
# <p class="our" id="my">특정 페이지 문서 읽기</p>]

soup2.find_all('p', attrs={'id':'my'})
# [<p class="our" id="my">특정 페이지 문서 읽기</p>]


📌 R select_one() 메소드

  • select_one()
    - 지정한 요소 중 가장 처음에 나오는 태그를 가져온다.

  • 형식
    select_one(태그이름, id="속성값", class_="속성값")
soup4.select_one('div')
# 첫번째 div 태그만 출력


📌 R select() 메소드

  • select()
    - 지정한 조건에 부합하는 요소들을 전부 리스트 형태로 저장하여 반환한다.

  • 형식
    select(태그이름, class_="속성값")
print(soup4.select('div'))
# 두개의 div 태그가 리스트 안에 저장된 형태로 반환

soup4.select_one('div', id='hello').select('a', class_='aa')
# [<a class="aa" href="https://www.naver.com/">naver</a>,
# <a class="aa" href="https://www.daum.net/">daum</a>]


profile
데이터 사이언티스트를 목표로 하는 개발자

0개의 댓글