PYTHON/Web Scraping

1.4 웹 스크래핑 - requests 라이브러리도 사용해보기(1)

  • -

 

지난 게시글
1.1 웹 스크래핑 - 방법 알아보기
1.2 웹 스크래핑 - urlopen과 beautifulsoup4 사용 방법 (1)
1.3 웹 스크래핑 - urlopen과 beautifulsoup4 사용 방법 (2)

 

 

requests 라이브러리 사용해보기

지난 게시글에서는 urlopen을 사용해 특정 주소의 html 값을 가져왔다. 다만 이 기능은 requests를 통해서도 동일하게 진행할 수 있다. urlopen과 달라보이지만 다를 것도 없는 것이 url을 따로 입력해주어도 되고, urlopen을 사용할때와 마찬가지로 get() 안에 링크를 직접 입력해주어도 된다.

from bs4 import BeautifulSoup as bs
import requests

url = 'https://finance.naver.com/sise'
response = requests.get(url)

 

 

status_code값 얻어오기

requests 라이브러리는 status_code 함수를 사용할 수 있다. 즉, 위의 코드에서 response라는 변수 안에 사전에 설정한 링크(url)의 정보를 얻어온(get) 후에 그 값을 저장하도록 했는데, 여기서 status_code를 받아올 수 있다. 간단하게 말하자면 status_code는 링크의 정보를 가져온 후의 결과값을 나타내며 '200'이 출력될 경우 성공적으로 가져왔음을 의미한다.

from bs4 import BeautifulSoup as bs
import requests

url = 'https://finance.naver.com/sise'

response = requests.get(url)
print(response.status_code)


>>>
200

 

 

status_code를 기반으로 동작 여부 결정하기

앞서 status_code 값이 200인 경우에만 값을 성공적으로 불러온 경우라고 설명했다. 이를 조건문을 활용하여 200인 경우에만 다른 정보를 불러오도록 하는 코드를 구축할 수 있다.

from bs4 import BeautifulSoup as bs
import requests

url = 'https://finance.naver.com/sise'
response = requests.get(url)

if response.status_code == 200:
	pass
else:
	pass

 

 

<div.class='type_box_l'> 값 가져오기

이제 response라는 변수 안에 해당 링크의 데이터들이 포함되어 있는데, 이 데이터를 .text 메소드를 통해 텍스트화 시킨 후부터는 이전 게시글에서 살펴봤던 beautifulsoup4 사용 방법과 동일하다. 즉, bsObj라는 변수 안에 특정 데이터를 입력한 후, 그 안에서 찾고자 하는 태그를 입력하면 된다.

from bs4 import BeautifulSoup as bs
import requests

url = 'https://finance.naver.com/sise'
response = requests.get(url)

if response.status_code == 200:
	html = response.text
	bsObj = bs(html, 'html.parser')
	test = bsObj.select_one('div.box_type_l')
	print(test)
else:
	pass
    

>>>
<div class="box_type_l">
<h3 class="top_tlt"><em>Top</em>종목</h3>
<div class="tab_style_1" id="siselist_title_tab_0">
(이하생략)

 

 


728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.