지난 게시글에서는 test_2 변수 내에 td > a을 통해 a 태그 안에 있는 정보만을 저장하도록 하였고, for문을 통해 데이터 하나하나에 접근하는 방법까지 알아보았다. 하지만 궁극적으로 우리에게 필요한 건 그 안에 있는 데이터들에 어떻게 접근할 수 있는가이다. 데이터에 접근을 해야만 데이터를 사용할 수 있는 것 아닌가? 그 방법은 의외로 간단하다.
위의 자료형을 보면 href와 onclick이 있는데, 이 두 가지 역시 <a> 태그 안에 있는 또 하나의 태그라고 이해하면 된다. 각각의 값에 접근하는 방법은 ['href']를 입력해주는 것이다. 아래의 코드를 확인해보자.
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')
test_2 = test.select('td > a')
for i in test_2:
print(i)
print("href:", i['href'])
print("onclick:", i['onclick'])
print("text:", i.get_text())
print("str:", i.string)
else:
pass
test_2 변수를 대상으로 하는 for문 내에서는 단순한 값(i)과 href에 접근하기 위한 i['href'], onclick 값에 접근하기 위한 i['onclick']이 있으며 데이터 안에 있는 문자열만 추출하기 위한 get_text()와 string을 출력하도록 하고 있다. 그 결과값은 아래와 같다.