※제로베이스 데이터 취업스쿨 11기 수강 중
📗 31번 째 공부 내용 요약
그동안 학습한 웹크롤링(BeatifulSoup, Selenium)과 데이터시각화(Folium)을 활용해 스타벅스와 이디야의 사이트에서 필요한 데이터를 크롤링하고, 분석하는 과제를 수행하였다. 자세한 과제 내용은 작성하면 안되기 때문에, 수행과정에서 활용한 개념들을 간략히 기재한다.
📖 31번 째 공부 내용 자세히
■ selenium webdriver 사용하기
- 스타벅스와 이디야의 사이트에 접근하고, 제어하기 위해 selenium 사용
#selenium 패키지에서 webdriver 기능을 가져온다
from selenium import webdriver
#whbdriver 중 chrome driver를 활용한다, cromedriver의 경로를 옵션으로 넣어준다
driver = webdriver.Chrome(executable_path='../driver/chromedriver.exe')
#이제 driver 변수를 이용해서 chrome을 제어할 수 있다
#get 명령으로 접근하고 싶은 주소를 지정한다
driver.get("웹주소")
■ selenium과 BeautifulSoup 함께 사용하기
- wedbriver로 구동되고 있는 이디야와 스타벅스 페이지의 html을 pase_source를 통해 불러온다
- 불러온 html을 beautifulsoup 객체로 바꿔 데이터를 추출한다
from selenium import webdriver
from bs4 import BeautifulSoup
driver = webdriver.Chrome('../driver/chromedriver.exe')
driver.get('웹사이트')
req = driver.page_source #현재 화면의 html을 불러온다
soup = BeautifulSoup(req, 'html.parser')
■ time
- time 모듈을 import 하여 time.sleep()을 활용한다
- 코드들이 작동되는 속도가 빠르기 때문에, 클릭 후 화면이 전환되는 시간을 벌어주기 위해 time.sleep()을 곳곳에 넣어주었다.
import time
time.sleep(3)
■ 화면 스크롤 ActionChains
- ActionChains는 마우스 이동, 마우스 버튼 동작 등 좀 더 복잡한 작업을 수행할 때 유용하다
- 스타벅스 사이트에서 스크롤을 내려야 클릭이 되는 버튼들이 있어 특정 태그 지점까지 스크롤하기 위해 활용하였다
from selenium.webdriver import ActionChains
action = ActionChains(driver)
action.move_to_element(some_tag).perform()
■ 구글맵 정보 찾기
- 크롤링한 정보들을 활용해 구글 맵에서 정보를 불러오기 위해 geocode를 활용했다.
import googlemaps
gmaps_key = '----'
gmaps = googlemaps.Client(key=gmaps_key)
# 1. 특정 공간 정보 불러오기
tmp = gmaps.geocode('서울영등포경찰서', language = 'ko')
# 2. 원하는 정보 찾기 # 데이터프레임.get('키')
# 위도, 경도
lat = tmp[0].get('geometry')['location']['lat']
lng = tmp[0].get('geometry')['location']['lng']
■ Folium
- 데이터들을 지도에 시각화하기 위해 folium을 활용하였다
#지도 생성
folium.Map(
location =[위도,경도],
zoom_start = 10,
tiles = '')
#마커 추가
folium.Marker(
location =[위도,경도],
popup = '내용',
tooltip='내용'
).add_to(지도)
#원 생성
folium.Circle(
location=[위도,경도],
radius='반지름' ,
fill ='색상 채울 건지(True/False)' ,
color = '테두리 색상' ,
fill_color = '색상',
popup = '내용',
tooltip = '내용'
).add_to(지도)
➰ 31번 째 후기
과제 공지에서 이미 인터넷에 정보가 많이 공개된 내용이니, 최대한 찾아보지 않고 수행하기를 권장한다고 해서 혼자 열심히 데이터 수집, 처리, 분석까지 해보았다.
과제를 제출하고 이전 기수분들이 했던 것을 검색해서, 코드보다는 분석 결과를 위주로 봤는데 비슷비슷하게 해서 음 그렇군 했다.
크롤링 부터 시각화까지 혼자 처음부터 끝까지 하는 과정이 꽤 재미있었다.
개인 일정때문에 조금 촉박하게 과제를 해서, 크롤링과 데이터 처리에 시간을 쓰느라 분석에는 많은 시간을 못 쏟았다.
어쨌든 결국 데이터 분석 직무에 있어서는, 스킬도 중요하겠지만 논리력도 중요한만큼 이번 과제는 그래도 간단해서 엄청 많은 사고를 요하지 않았지만, 앞으로 좀 더 분석적인 사고력을 기르는게 필요하다는 점을 다시 느꼈다.(수업 과정에 이런 것도 포함되는지 궁금하네)
※본 내용은 제로베이스 데이터 취업 스쿨에서 제공하는 학습 내용에 기반합니다.
'제로베이스 데이터 스쿨 > 일일 스터디 노트' 카테고리의 다른 글
33번째 스터디노트 / SQL 기초 - SELF JOIN, CONCAT, ALIAS, DISTINCT, LIMIT (0) | 2023.02.20 |
---|---|
32번째 스터디노트 / SQL 기초 - IN, LIKE, UNION, JOIN (0) | 2023.02.20 |
30일차 스터디노트 / 파이썬 EDA LEVEL 테스트 2회차 (0) | 2023.02.15 |
29일차 스터디노트 / 파이썬 EDA Level 테스트 1회차 (0) | 2023.02.14 |
28일차 스터디노트 / SQL 문법, Database, Table, SELECT, ORDER BY, 비교연산자, 논리연산자 (0) | 2023.02.08 |