예전 블로그 글을 가져왔습니다
https://velog.io/@eunv0110/%ED%81%AC%EB%A1%A4%EB%A7%81-%EA%B8%B0%EB%B3%B8-%EA%B5%AC%EC%A1%B0%EC%99%80-HTML
크롤링이란 웹페이지에서 필요한 데이터를 추출하는 것을 말한다
이 과정은 크게 이렇게 이루어진다
1. 라이브러리 임포트
import requests
from bs4 import BeautifulSoup
- requests : 웹페이지 가져오기 라이브러리
- BeautifulSoup : 웹페이지 분석하는 라이브러리
2. 웹페이지 가져오기
res=requests.get('url')
requests라는 객체에서 get라는 메소드를 사용하여 url을 통해 웹페이지를 가져와 res라는 변수에 넣어줌
3. 웹페이지 분석하기
soup=BeautifulSoup(res.content,'html.parser')
soup라는 변수안에 분석된 내용을 넣어준다
4. 필요한 데이터 추출하기
mydata=soup.find()
print(mydata.get_text())
- soup.find(): 함수로 원하는 부분 지정
- 변수.get_text(): 추출한 부분 가져올 수 있음
이 과정에서 알아야할 것은 html/css이다
내가 어떤 부분을 가져오고 싶은지 빠르게 파악하려면 html과 css에 대해 간략하게라도 아는 것이 좋다
HTML은 마크업 언어이다
즉 문서나 데이터의 구조를 표현하는 언어를 의미한다
HTML은 여러가지 태그로 이루어져있다 (이거는 그때그때 찾아보면 될거 같다)
특정 속성을 가져오는 방법은 여러가지가 있다 (태그가 여러번 쓰이기 때문에 중복되는 경우 내가 원하는 데이터만 쏙 뽑아서 가져오기 어렵기 때문에 특정 속성을 가져오는 방법을 알아야한다)
이때 만약에 p태그를 모조리 다 가져오고 싶다?
그 경우에는 find_all('p')함수를 써주면 된다
단 이 경우에는 데이터가 리스트 형식으로 크롤링 되기 때문에 for 구분을 통해 하나씩 출력해주면 된다
내일은 CSS을 이용해서 데이터 크롤링하는 법을 정리하겠다