from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup
import time
import requests
import folium
chrome_driver = 'D:/bigdata/Jupyter_python/chromedriver.exe'
driver = webdriver.Chrome(chrome_driver)
driver.implicitly_wait(5) # 응답의 시간 지연
url = 'https://www.wikitree.co.kr/articles/217101'
# chrome driver로 해당 페이지가 물리적으로 open
driver.get(url)
# 소스 가져오기
src = driver.page_source
# 소스 BeautifulSoup 객체로 변환
soup = BeautifulSoup(src)
comment_area = soup.select('div#wikicon div')
# chrome driver 사용 후, close 함수로 종료
# driver.close()
식당이름 저장
name = []
strong = soup.select('div#wikicon strong')
# print(strong)
for item in strong:
if len(item.text) > 1:
item = item.text.split('회 ') # '회 ' 로 찾아야 애성회관 이름 안잘림
# print(item)
if len(item) > 1:
item = item[1]
name.append(item)
print(len(name))
print(name)
p = soup.select('div#wikicon p')
address = []
tel = []
del(p[0])
del(p[0])
# print(p)
for i in p:
if '서울시' in i.text or '서울' in i.text or '종로구' in i.text:
address.append(i.text.replace('\xa0', ' '))
if '02' in i.text:
tel.append(i.text.replace('\xa0', ' '))
print(len(address))
print(address)
print(len(tel))
print(tel)
xylist = []
popuplist = []
for item in result:
popuplist.append([item[0], item[1]])
# 예외처리 : 16번째 주소만 인식을 못하여 '종로구 당주동 5'만 사용
if '빌딩' in item[2]:
nad = item[2].split('빌딩')[0]
nad = nad.split(' 로얄')[0]
xylist.append(nad)
continue
else:
xylist.append(item[2])
print(xylist)
print(popuplist)
xpoint = []
ypoint = []
for i in xylist:
x, y= getLatLng(i)
xpoint.append(x) # 경도 저장
ypoint.append(y) # 위도 저장
map_list = folium.Map(location=[37.566659527,126.978346859], zoom_start=10)
for item in range(len(result)):
latitude = float(ypoint[item])
longtitude = float(xpoint[item])
folium.Marker(
location = [latitude, longtitude],
popup = popuplist[item],
icon=folium.Icon(color='red', icon='glyphicon glyphicon-cutlery')
# icon 적용 할 때 부트스트랩 최신버전을 사용하면 표시안됨. 3버전 이용
).add_to(map_list)
map_list
Make this Notebook Trusted to load map: File -> Trust Notebook