본문 바로가기
#03.인프런/+02.크롤링

[크롤링] 크롤링 기본 문법 (find)

by 돌비오 2023. 4. 26.
728x90

 

 

 

크롤링 기본 구조
# 라이브러리 import
# requests : 웹페이지 가져오기
# bs4(BeautifulSoup) : 웹페이지 분석
import requests
from bs4 import BeautifulSoup


# 웹페이지 가져오기
# res.content 로 html 소스 확인가능

 
# 웹페이지 파싱(분석)하기
# soup에 HTML을 파싱한 정보가 들어감
soup = BeautifulSoup(res.content,'html.parser')

 
# 데이터 추출하기
mydata = soup.find('title')

 
# 추출한 데이터 활용
print(mydata.get_text())

 

 

 

 

HTML 크롤링
from bs4 import BeautifulSoup


# 실습용 HTML 코드
html = "<html> \
<body> \
<h1 id='title'>[1]크롤링이란?</h1> \
<p class='cssstyle'>웹페이지에서 필요한 데이터를 추출하는 것</p> \
<p id='body' align='center'>파이썬을 중심으로 다양한 웹크롤링 기술 발달</p> \
</body> \
</html>"


# HTML 파싱(분석)
soup = BeautifulSoup(html, "html.parser")


# 태그로 검색 방법
data = soup.find('h1')   # H1 이라는 태그의 내용을 가져온다.
print(data)              # H1 코드 전제 출력
print(data.string)       # H1 코드 중 문자만 출력
print(data.get_text())   # H1 코드 중 TEXT만 출력

=>

<h1 id="title">[1]크롤링이란?</h1>

[1]크롤링이란?

[1]크롤링이란?

 

 

# p 태그 문장이 두 개인데 이 중에 하나를 선택하려면?

1. data = soup.find('p', class_='cssstyle')  # P태그 중 class 가 cssstyle
2. data = soup.find('p', 'cssstyle')         # P태그 중 class 가 cssstyle
3. data = soup.find('p', attrs = {'align': 'center'})
4. data = soup.find(id='body')               # id가 body인 코드 추출



# p 태그 문장을 모두 가져오려면?

paragraph_data = soup.find_all('p')

# p 태그가 여러개니까 for문으로 출력
for paragraph in paragraph_data:
    print(paragraph.get_text())   # list형태이므로 .get_text()
728x90