웹 크롤링을 통해 데이터를 가져올 때, 내가 필요한 데이터만 가져오는 방식에 대해 알아보자.
CSS 코드를 이용해 불러오는 방식이다
findAll(tag, attributes, recursive, text, limit, keywords)
위와 같은 값을 이용하여 그에 해당하는 데이터만 가져올 수 있다!
for i in bsObject.find_all('meta'):
print(i.get('content'))
hList = bsObject.findAll('span', {'class':'blind'})
hList = bsObject.findAll(text = '네이버')
hList = bsObject.findAll(id = 'text')
tag 또는 class의 이름, 상하관계를 통해 원하는 데이터를 추출할 수 있다.
select('Tag')
# tag
select('.Class)
# class
select('#Id')
# id
select('tag[attribute]')
# tag - attribute
bsSelect = bsObject.select('a')
bsSelect = bsObject.select('.content_top')
bsSelect = bsObject.select('a[href]')
for i in bsSelect:
print(i.get('href'))
bsSelect = bsObject.select('div>span') # 자식 관계
bsSelect = bsObject.select('div span') # 자손 관계
bsSelect = bsObject.select('div.partner_box>h3.title')
for i in bsSelect:
print(i.get_text())
from re import I
from urllib.request import urlopen
from bs4 import BeautifulSoup
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
#
html = urlopen('http://www.naver.com')
bsObject = BeautifulSoup(html, "html.parser")
#
# use find_all() or findAll()
#
for i in bsObject.find_all('meta'):
print(i.get('content'))
#
# use select()
#
for i in bsObject.select('div.partner_box>h3.title'): # select()
print(i.get_text())
https://webnautes.tistory.com/691?category=618796
https://computer-science-student.tistory.com/235