Web scraping
学習内容
css構造 DOM:文書オブジェクトモデル、HTML、XML文書のプログラミングインタフェース
ドキュメントをオブジェクト化して作業します. ページコンテンツ(page content)はDOMに格納され、JavaScriptからアクセスまたは操作できます.これは方程式で次のように表される.
API (web or XML page) = DOM + JS (scripting language)
使用 getElementsbyTagName:文書の要素 をタグ名で返します. getElementById:idに一致する要素を返す getElementsByClassName:クラスが一致する要素 を返します. querySelector:コレクタに一致する要素 を返します. querySelectorAll:コレクタに一致するすべての要素 を返します.
BeatifulSoup
設定
css構造
id 선택자
<style>
#id이름{}
</style>
class 선택자
<style>
.class이름{}
</style>
DOMドキュメントをオブジェクト化して作業します.
API (web or XML page) = DOM + JS (scripting language)
使用
BeatifulSoup
設定
pip install beatifulsoup4
基本構文import requests
from bs4 import BeautifulSoup
#page정보를 크롤링 할 수 있도록 준비
url = 'https://google.com'
page = requests.get(url) #page의 정보를 받아옴.
soup = BeautifulSoup(page.content, 'html.parser')
#page.content : page의 내용물을 문자열로 변환
#page.content를 html.parser로 파싱
#parsing : 일련의 문자열을 의미있는 토큰으로 분해하고 그것들로 이루어진 Parse tree를 만드는 과정.
#준비된 soup에서 정보 빼내오기
find()
find_all()
data_id = soup.find(id = 'dog') #해당id를 가진 요소찾기
data_tag = soup.find('div') #해당태크를 가진 요소찾기
data_class = soup.find(class_='cat') #해당클래스를 가진 요소찾기
data_string = soup.find(string = 'raining') #해당 문자열이 포함되어있는 요소찾기
data_class_tag = soup.find('div', class_='cat') #태그와 클래스를 동시에 만족시키는 요소찾기
data_class_tag = soup.find('div', attrs = {"class" : "cat"}) #위의 코드와 동일하게 작동
data.get("href") #data가 가지고 있는 요소에서 href 속성의 값을 반환
data.get_text() #text값 반환
#css 문법사용
data_class = soup.select(".cat") #해당클래스를 가진 요소찾기
data_id = soup.select("#dog") #해당id를 가진 요소찾기
Reference
この問題について(Web scraping), 我々は、より多くの情報をここで見つけました https://velog.io/@tjddyd1592/517-Web-scrapingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol