데이터분석 개발일지(스파르타코딩)

데이터분석 개발일지1.2

rainsky 2022. 8. 9. 17:41

2022.08.09

 

웹 스크래핑과 관련하여 배운 내용을 정리하고자 한다.

 

BeautifulSoup

html에서 태그를 가지고 오고자 한다면, BeautifulSoup을 이용하자.

BeautifulSoup은 크롤링에 꼭 필요하다!

 
BeautifulSoup 인스턴스를 생성하기 위해서 밑과 같이 적어준다.
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
두 번째 매개변수는 분석할 분석기(parser)의 종류이다.

 

태그를 가져오기 위해 soup.select()을 이용하면 된다. 이때, id는 앞에 # 붙이고 calss는 앞에 . 을 붙여준다.

 

Newspaper3k

기사를 가져올 때 사용한다. 패키지이다.

!pip install newspaper3k
from newspaper import Article

HTML 소스 코드를 가져오기 위해서는 requests 패키지의 get 모듈을 이용해야 한다.

news = requests.get(url, headers=headers)
news.content

이때, 유저의 에이전트가 필요하다.

 

이를 이용하여 원하는 페이지수와 카테고리, 날짜를 뽑아낼 수 있다는 것이 신기했다. 또, 함수를 만들어 리스트에 담아주며 최종적으로 url로부터 데이터 프레임을 생성해볼 수 있어서 좋았다.

 

 

과제

과제로 스크래핑을 했다.

웹 스크래핑을 할 때, 해당 부분을 copy selector을 해주면 넣어줘야 할 해당 요소를 가져올 수 있는 사실을 알았다.

힘들게 하나하나 찾아볼 필요가 없어서 시간 효율이 높아졌다.

가져온 요소에 text를 붙여주면 문자에 해당하는 부분만 가져온다.

또, 띄어쓰기가 되어있어 한눈에 알아보기 힘들다면,  띄어쓰기 함수인 strip을 사용해준다.

tr.select('해당 요소')[0].text.strip()

만약 전체 중에서 하나만 선택하고 싶은데, [0]을 쓰지 않고 표현하고 싶다면

tr.select_one('해당 요소').text.strip()

을 써준다.

 

재밌는 1 주차 수업이었다.