[Web Crawling] 2. 必要なデータのみインポート
分類データ
Webスクロールでデータをインポートする場合は、必要なデータのみをインポートする方法について説明します.
findAll() find_all()
これはCSSコードでロードする方式です.
findAll(tag, attributes, recursive, text, limit, keywords)
上記の値のみで対応するデータを取得できます.tagとしてインポート
for i in bsObject.find_all('meta'):
print(i.get('content'))

attributeとしてロード
hList = bsObject.findAll('span', {'class':'blind'})

textパラメータとしてロード
hList = bsObject.findAll(text = '네이버')
キーワードパラメータとしてロード
hList = bsObject.findAll(id = 'text')
select()
必要なデータはtagまたはclassの名前、コンテキスト関係から抽出できます.
select('Tag')
# tag
select('.Class)
# class
select('#Id')
# id
select('tag[attribute]')
# tag - attribute
select(「ラベル名」)
bsSelect = bsObject.select('a')

select(".クラス名")
bsSelect = bsObject.select('.content_top')

select(「ラベル名」「プロパティ」)
bsSelect = bsObject.select('a[href]')
for i in bsSelect:
print(i.get('href'))

select(「親ラベル」>「子ラベル」)
bsSelect = bsObject.select('div>span') # 자식 관계
select(「親ラベルサブラベル」)
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
Reference
この問題について([Web Crawling] 2. 必要なデータのみインポート), 我々は、より多くの情報をここで見つけました https://velog.io/@seokwon99/Web-Crawling-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol