<API 활용>

Youtube API로 영상 받아오기 : https://imslo.tistory.com/17

 

Youtube Api 활용, 특정채널 영상 URL 가져오기

https://console.cloud.google.com/getting-started 들어가서 로그인하고, 좌측 탭에 API 및 서비스 클릭 Google Cloud console console.cloud.google.com 프로젝트 생성하고, 사용자 인증 정보 탭 -> +사용자 인증 정보 -> API

imslo.tistory.com

 

JSON으로 받아온 영상목록 forEach, append로 붙이기

결과

첫줄 아래로 자동으로 가져온 동영상들이 붙음

 

 

<웹스크래핑>

beautifulsoup4, selenium과 같은 파이썬 라이브러리들이 있음.

나는 beautifulsoup4 사용했다. Selenium은 동적 웹 크롤링에 좋은듯 ? (확실x)

 

네이버 플레이스 '클라이밍짐' 검색 후 나온 암장 리스트를 받아올 생각이었으나,

네이버 플레이스의 html에 iframe이 있어서 이를 크롤링하려면 Selenium을 이용해 크롬 드라이버를 변경 하고 ...~~~~.... 과정이 복잡해 그냥 비지니스 검색을 크롤링 하기로 함.

 

빨간 부분에 마우스 우클릭 -> 검사

 

몇 개 더 해보면, 비지니스 이름이 담긴 곳은 span 태그에 OSrXXb 클래스인 것을 알 수 있다.

 

import requests
from bs4 import BeautifulSoup

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('내가 검색한것의 주소',headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')

a = soup.find_all('span', {'class' : 'OSrXXb'})
 
requests 라이브러리 설치하고, requests.get('주소')를 통해 페이지 정보 받아오고,
BeautifulSoup(data.text, 'html.parser')를 통해 html로 파싱해준다.
 
a는 리스트인데, 각 element를 프린트 해주면
 
OSrXXb라는 이름을 포함한 클래스도 가져와버렸다.

클래스 이름이 OSrXXb가 유일한 것만 남기기

 

 

==================사고 발생========================

위와 같은 방법으로 검색되는 암장 이름과, 해당 암장의 별점, 위치, 전화번호를 가져오는데는 성공하였으나,

구글 지도 검색시 한 페이지에 사진이 같이 나오는 것이 아니고, 이름을 클릭하면 사진이 나오는 창(모달)이 새로 나오는 형태였다. Beautifulsoup4로 정적인 웹페이지는 쉽게 크롤링 할 수 있지만, 이렇게 클릭해야 정보가 새로 로드되는 경우 request로 받아온 url이 바뀌기 때문에 이를 처리해줄 수가 없었다. 약 5시간의 삽질 후, Selenium으로 하기로 결정, 이후 약 5시간의 삽질 끝에 성공한 내용을 다음 글에 쓸

 

 

 

'공부 > Web' 카테고리의 다른 글

AWS 사용해 웹페이지 배포해보기  (0) 2023.03.26
MongoDB / Flask  (0) 2023.03.25
Javascript // jQuery // Fetch  (0) 2023.03.22
CSS  (0) 2023.03.21
HTML  (0) 2023.03.21

+ Recent posts