Skip to content

Instantly share code, notes, and snippets.

@dobestan
Created April 27, 2019 11:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dobestan/99c3289280b99a3fbf94d1f0b4464054 to your computer and use it in GitHub Desktop.
Save dobestan/99c3289280b99a3fbf94d1f0b4464054 to your computer and use it in GitHub Desktop.
구글맵 이미지 추출하기
#!/usr/bin/env python
# coding: utf-8
# In[ ]:
import requests
import pandas as pd
from selenium import webdriver
import shutil
# In[ ]:
# * URL 입력
# 이미지가 나오는 구글맵 사이트만 현재 적용 가능
url = "https://www.google.com/maps/uv?hl=ko&pb=!1s0x60188cdba56b3bf7%3A0x8b741cc73341edb5!2m22!2m2!1i80!2i80!3m1!2i20!16m16!1b1!2m2!1m1!1e1!2m2!1m1!1e3!2m2!1m1!1e5!2m2!1m1!1e4!2m2!1m1!1e6!3m1!7e115!4shttps%3A%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipNCvANVkKmIotlrd9rtQLB0YHh4tX8b9Ef3a8p9%3Dw355-h200-k-no!5z7J207IS47YOE67Cx7ZmU7KCQIC0gR29vZ2xlIOqygOyDiQ!15sCAQ&imagekey=!1e10!2sAF1QipNCvANVkKmIotlrd9rtQLB0YHh4tX8b9Ef3a8p9&sa=X&ved=2ahUKEwid1oj_gfDhAhWKHqYKHV--DAMQoiowCnoECA8QBg"
# In[ ]:
# Chrome 브라우저랑 연동하기 위해서 chromedriver 설치 필요
# chromedriver 를 다운로드 이후, 아래의 링크 변경하기
driver = webdriver.Chrome("/Users/dobestan/Downloads/chromedriver")
# In[ ]:
# 구글맵 사이트 접속
driver.get(url)
# In[ ]:
# Image Element 로 부터 URL 추출하기
# url = image_element.get_attribute("style").split('\"')[-2]
def parse_url_from_image_element(image_element):
try:
url = image_element.get_attribute("style").split('\"')[-2]
return url
except:
return None
# In[ ]:
# 구글맵 사이트로부터 이미지 URL 추출하기
image_elements = driver.find_elements_by_css_selector(".gallery-image-high-res")
urls = [
parse_url_from_image_element(image_element)
for image_element
in image_elements
]
urls = [url for url in urls if url]
# In[ ]:
# 이미지 다운로드 함수
def download_image(url, destination):
response = requests.get(url, stream=True)
with open(destination, "wb") as image_file:
shutil.copyfileobj(response.raw, image_file)
image_url = "https://lh5.googleusercontent.com/p/AF1QipOLRCKL8yn5MVAU2J0Lv66ygIvnxZQvS2TtaF3u=s1354-k-no"
# download_image(image_url, "./sample.jpg")
# !open ./sample.jpg
# In[ ]:
# 다운로드 폴더 생성하기
import os
os.makedirs("./다낭")
# In[ ]:
# 특정 폴더에 모든 이미지 저장하기
for i in range(len(urls)):
url = urls[i]
filename = "./다낭/image_" + str(i) + ".jpg"
download_image(
url,
filename,
)
print("Download " + filename)
# In[ ]:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment