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
'#03.인프런 > +02.크롤링' 카테고리의 다른 글
| 크롤링 참고 링크 (0) | 2023.04.27 |
|---|---|
| [크롤링] 크롤링 기본문법 (css selector) (0) | 2023.04.26 |
| [크롤링] 크롤링을 위한 html, css 이해 (0) | 2023.04.26 |