내일배움캠프 1일차 TIL - 웹 스크래핑(크롤링)
오늘 들은 강의 : Chat GPT 3주차
8강 날씨 웹 스크래핑(크롤링)하기
파이썬 웹 스크래핑은 웹 페이지 안에서 원하는 정보를 찾아와 프로그램에 활용하는 것!
>API가 없어도 데이터를 가져올 수 있다
네이버 날씨 페이지에서 “온도 데이터” 만 찾아오기
>temp = soup.select_one('.temperature_text')
여기서 중요한 것은,
“현재 온도 25도” 가 아닌 오로지 숫자 “25”
그래서 temperature_text 태그 안에서 정말 필요한 데이터만 콕 집어줘야 한다
temp = soup.select_one('.temperature_text > strong').contents
9강 음악 웹 스크래핑(크롤링)하기
날씨 페이지에서 온도만 가져왔던 것과는 다르게
멜론 뮤직 top 100 곡의 리스트를 가져오는 실습
> 반복문의 활용을 통해서 가능하다
trs = soup.select('.lst50')
for tr in trs:
rank = tr.select_one('.rank').text
title = tr.select_one('.rank01 > span > a').text
artist = tr.select_one('.rank02 > a').text
image = tr.select_one('img')['src']
print(rank, artist, "-", title)
이 실습에서 중요한 것은
1위부터 100위까지의 데이터에 “모두” 공통점으로 들어간 정보를 찾아야 한다는 것!
위 코드에서는 trs = soup.select('.lst50') 이 부분 때문에 100위까지의 정보가 나오지 않음
그래서 아래와 같이 수정
from bs4 import BeautifulSoup
import requests
url = "https://www.melon.com/chart/"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(url, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
trs = soup.select('table > tbody > tr')
for tr in trs:
rank = tr.select_one('.rank').text
title = tr.select_one('.rank01 > span > a').text
artist = tr.select_one('.rank02 > a').text
image = tr.select_one('img')['src']
print(rank, artist, "-", title)
10, 11강 Flask를 활용한 웹개발 시작
가상 환경 설치 및 Flask 패키지 설치
::오늘의 회고::
내배캠 첫날이라 여러가지를 적응하는데 더 정신이 없었던 것 같다.
강의를 듣긴 들었으나 이해가 어려웠던 탓에 뒷 강의는 TIL 작성에 어려움을 겪었다.
시간을 내서 다시 강의를 듣고 내용을 보충해야겠다.