import requests
from bs4 import BeautifulSoup
# csv 파일에서 병원 이름 가져오기
import pandas as pd
from selenium.common import NoSuchFrameException
hospital_name = pd.read_excel('input.xlsx', sheet_name='Sheet1').values
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import time
# csv 파일 만들기
import csv
file = open('hospital_num.csv', mode='w', newline='')
writer = csv.writer(file)
writer.writerow(["name", "number"])
final_result = []
time.sleep(1)
for i in range(len(hospital_name)):
# 검색 엔진에 입력하기, 엔터 치기
DRIVER_PATH = '/path/to/chromedriver'
driver = webdriver.Chrome(executable_path=DRIVER_PATH)
driver.get('https://map.naver.com/v5/')
wait_search_box = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "input_search")))
search_box = driver.find_element(By.CLASS_NAME, "input_search")
search_box.send_keys(hospital_name[i], Keys.RETURN)
time.sleep(10)
try:# 첫번째 시도 / 바로 뜰 경우: 바로 번호 긁어오기
# Iframe으로 전환하기
driver.switch_to.default_content()
driver.switch_to.frame('entryIframe')
time.sleep(3)
# 번호 찾아서 입력하기
hospital_phone = driver.find_element(By.CSS_SELECTOR, "span.dry01").text
except: # 아무 정보가 뜨지 않을 경우: 정보 없음으로 입력하기
hospital_phone = '정보 없음'
hospital_info = {
'name': str(hospital_name[i]),
'number': hospital_phone
}
print(hospital_info)
final_result.append(hospital_info)
# 엑셀 파일에 이름과 전화번호 저장
for result in final_result:
row = []
row.append(result['name'])
row.append(result['number'])
writer.writerow(row)
print(final_result)
import pandas as pd
df = pd.read_excel('hospital_info.xlsx', sheet_name='Sheet1')
df_rename = df.rename(columns={'전화번호': 'phoneNum', '도로명주소': 'address', '사업장명': 'hosName', '좌표정보(X)': 'xAxis', '좌표정보(Y)': 'yAxis' })
df2 = df_rename.fillna('정보 없음')
import numpy as np
#병원마다 번호 가질 수 있게 컬럼 추가
df2['row_num'] = np.arange(len(df2))
hospital_info = pd.DataFrame(df2)
from pymongo import MongoClient
client = MongoClient('Connect url')
hospitalInfo = client.hospitalDB.hospitalInfo
upload_info = hospital_info.to_dict("records")
hospitalInfo.insert_many(upload_info)
=> 파이썬 공부를 하자~~~