Step 1 . 下載chromedriver
下載地址 : ChromeDriver下載
比如我是84.0.4147.89需要下載帶有84.0.4147版本的driver(win64用戶可以安裝32版本)
Step 2. 復(fù)制chromedriver.exe到chrome的安裝目錄
打開下載好的壓縮包,將里面的chromedriver.exe復(fù)制到chrome的安裝目錄下
Step 3. 添加path路徑
打開高級系統(tǒng)設(shè)置->環(huán)境變量, 找到Path雙擊
點(diǎn)擊右側(cè)的新建按鈕,將復(fù)制好的chromedriver地址粘貼
Step 4. CMD輸入chromedriver驗(yàn)證是否成功安裝
Step 5. 執(zhí)行python代碼
將chromedriver.exe拷貝一份到代碼的根目錄下,修改代碼里excel的文件的地址,運(yùn)行代碼
# coding=utf-8
from openpyxl import Workbook
from openpyxl import load_workbook
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException, NoSuchElementException, WebDriverException
import time
from bs4 import BeautifulSoup
def coordinate():
# 創(chuàng)建Chrome瀏覽器驅(qū)動對象
driver = webdriver.Chrome()
driver.get('http://api.map.baidu.com/lbsapi/getpoint/index.html')
# 顯式等待,設(shè)置timeout
wait = WebDriverWait(driver, 1)
# 判斷輸入框是否加載
input = wait.until(
EC.presence_of_element_located(
(By.CSS_SELECTOR, '#localvalue')))
# 判斷搜索按鈕是否加載
submit = wait.until(
EC.element_to_be_clickable(
(By.CSS_SELECTOR, '#localsearch')))
#workbook加載
wb = load_workbook(u'D:/Coding/python/Hospital.xlsx', data_only=True)
ws = wb.active
#遍歷每一行
rows = []
for row in ws.iter_rows():
rows.append(row)
print (u"行高:", ws.max_row)
print (u"列寬:", ws.max_column)
for i in range(0, ws.max_row):
print (rows[i][0], rows[i][0].value)
input.clear()
input.send_keys(rows[i][0].value)
submit.click()
time.sleep(1)
try:
# 等待坐標(biāo)
wait.until(
EC.presence_of_element_located(
(By.CSS_SELECTOR, '#no_0')))
except TimeoutException:
print ('百度地圖查不到地址')
continue
# 獲取網(wǎng)頁文本,提取經(jīng)緯度
source = driver.page_source
soup = BeautifulSoup(source, 'lxml')
i = 0
for li in soup.select('ul.local_s > li'):
print (li.get_text())
i += 1
if i > 0:
break
# 關(guān)閉瀏覽器驅(qū)動
driver.close()
coordinate()