<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
首先,宣告一下,這裡我完成的腳步屬於半自動化的,我戲稱它為“有監督的半自動化”指令碼。具體原因後面會詳細說明。
安裝Selenium:
pip install selenium
安裝ChromeDriver
ChromeDriver下載地址: chromedirver.
注意:下載的版本號要和自己Chrome版本號一樣
注意:安裝的geoserver外掛版本要和安裝的geoserver版本號完全一致,否則會報錯
1.安裝Mongodb外掛:
以我的本地geoserver版本為例:
解壓後得到的jar檔案
將得到的jar檔案貼上到這裡,重啟tomcat伺服器即可安裝
2.安裝向量外掛
這是從官網外掛下載後的並且解壓後的樣子,安裝方式同Mongo外掛一樣
1.在要操作的網站按F12開啟Chrome的偵錯工具,選擇元素選擇工具,如下圖所示:
2.選擇你要操作的元素,如下所示:在這裡插入圖片描述
3.右鍵Copy,選擇複製完整的XPath路徑,這樣就可以精準的參照到程式碼中了。
完整程式碼如下:
from selenium import webdriver from selenium.webdriver.support.ui import Select import time count = 0 # 用於統計帶釋出圖層個數 wd = webdriver.Chrome() wd.implicitly_wait(5) # 隱藏式等待 wd.get('http://localhost:8080/geoserver/web/') # 連結原生的geoserver wd.find_element_by_id("username").send_keys("admin") # 填入使用者名稱 wd.find_element_by_id("password").send_keys("geoserver") # 填入密碼 wd.find_element_by_css_selector(".positive").click() time.sleep(1) wd.find_element_by_xpath('//*[@id="navigation"]/li[2]/ul/li[4]/a/span').click() # 選擇圖層頁 time.sleep(1) wd.find_element_by_xpath('//*[@id="page"]/div[1]/div[2]/ul/li[1]/a').click() # 新建圖層 time.sleep(1) select = Select(wd.find_element_by_css_selector(".select2-hidden-accessible")) # 選擇工作區 time.sleep(1) select.select_by_index(4) # 這裡數位根據需求自行調整 elements = wd.find_elements_by_xpath('/html/body/div[2]/div/div[2]/div[2]/div/div[2]/div/table/tbody/tr[*]/td[2]/span') # 統計MongoDB中待發布的圖層個數 for element in elements: print(element.text) count = count + 1 print(count) wd.find_element_by_xpath('//*[@id="navigation"]/li[2]/ul/li[4]/a/span').click() # 退回到圖層頁 for i in range(1, count): #這裡的count可以不用,直接自己指定範圍 wd.find_element_by_xpath('//*[@id="page"]/div[1]/div[2]/ul/li[1]/a').click() # 新建圖層 time.sleep(1) select = Select(wd.find_element_by_css_selector(".select2-hidden-accessible")) # 選擇工作區 time.sleep(1) select.select_by_index(14) # 這裡數位根據需求自行調整 time.sleep(1) wd.find_element_by_xpath('/html/body/div[2]/div/div[2]/div[2]/div/div[2]/div/table/tbody/tr['+ str(i) + ']/td[3]/span/a/span').click() # 點選進入釋出設定 time.sleep(1) wd.find_element_by_xpath('/html/body/div[2]/div/div[2]/div[2]/form/div[2]/div[2]/div[1]/div/ul/div/li[2]/fieldset/ul/li[1]/div[2]/a[1]').click() # 選擇範圍 time.sleep(6) wd.find_element_by_xpath('/html/body/div[2]/div/div[2]/div[2]/form/div[2]/div[2]/div[1]/div/ul/div/li[2]/fieldset/ul/li[2]/a').click()# 選擇範圍 time.sleep(6) wd.find_element_by_xpath('/html/body/div[2]/div/div[2]/div[2]/form/div[2]/div[1]/ul/li[4]/a/span').click() # 切換到title cacheing time.sleep(1) wd.find_element_by_xpath("/html/body/div[2]/div/div[2]/div[2]/form/div[2]/div[2]/div/fieldset/ul/li[2]/div/ul/li[6]/div[1]/input").click() # 點選需要新增的向量切片 # time.sleep(1) wd.find_element_by_xpath("/html/body/div[2]/div/div[2]/div[2]/form/div[2]/div[2]/div/fieldset/ul/li[2]/div/ul/li[6]/div[2]/input").click() # 點選需要新增的向量切片 # time.sleep(1) wd.find_element_by_xpath("/html/body/div[2]/div/div[2]/div[2]/form/div[2]/div[2]/div/fieldset/ul/li[2]/div/ul/li[6]/div[3]/input").click() # 點選需要新增的向量切片 # time.sleep(1) wd.find_element_by_xpath("/html/body/div[2]/div/div[2]/div[2]/form/div[2]/div[2]/div/fieldset/ul/li[2]/div/ul/li[6]/div[4]/input").click() # 點選需要新增的向量切片 # time.sleep(1) wd.find_element_by_xpath("/html/body/div[2]/div/div[2]/div[2]/form/div[2]/div[2]/div/fieldset/ul/li[2]/div/ul/li[7]/input").send_keys(10) # 新增時長 # time.sleep(1) wd.find_element_by_xpath("/html/body/div[2]/div/div[2]/div[2]/form/div[2]/div[2]/div/fieldset/ul/li[2]/div/ul/li[8]/input").send_keys(10) # 新增時長 # time.sleep(1) wd.find_element_by_css_selector("#page div.button-group.selfclear > a:nth-child(1)").click() time.sleep(1)
解釋一下:程式碼中出現了time.sleep(6),6秒,大家可能會覺得等待的時間有些長,但是這是博主在實踐中覺得可行的時間。因為有的地方資料量太大,geoserver計算邊框時會耗時較長,導致崩潰,如果大家的資料量較小,則可以把,這裡的時間調小,或者沒有。
這裡Mongon的連結之類的工作都是在,之前手動操作的,沒有做自動化,畢竟也沒有多少,這就是半自動化,而監督是指令碼執行過程中如果還是避免不了,計算時間過長,則相應圖層手動釋出,之後的調整程式碼for迴圈的range後再次執行即可。
再給大家曬一下geoserver計算邊框時長超過的後果:
到此這篇關於Python+Selenium實現在Geoserver批次釋出Mongo向量資料的文章就介紹到這了,更多相關Python批次釋出Mongo向量資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45