成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python+Selenium實(shí)現(xiàn)在Geoserver批量發(fā)布Mongo矢量數(shù)據(jù)

89542767 / 537人閱讀

  小編寫這篇文章的一個(gè)主要目的,主要是來給大家做一個(gè)解答,解答的內(nèi)容是Python+Selenium,具體的一個(gè)內(nèi)容解釋是什么呢?比如,我們可以實(shí)現(xiàn)Geoserver批量發(fā)布Mongo矢量數(shù)據(jù),具體的一個(gè)內(nèi)容,下面就給大家詳細(xì)解答下。


  首先,聲明一下,這里我完成的腳步屬于半自動(dòng)化的,我戲稱它為“有監(jiān)督的半自動(dòng)化”腳本。具體原因后面會(huì)詳細(xì)說明。


  一、安裝Selenium和ChromeDriver


  安裝Selenium:


  pip install selenium

  安裝ChromeDriver


  ChromeDriver下載地址:chromedirver.


  注意:下載的版本號(hào)要和自己Chrome版本號(hào)一樣二、安裝Geoserver必要插件


  注意:安裝的geoserver插件版本要和安裝的geoserver版本號(hào)完全一致,否則會(huì)報(bào)錯(cuò)


  1.安裝Mongodb插件:


  以我的本地geoserver版本為例:

01.png

  解壓后得到的jar文件


  將得到的jar文件粘貼到這里,重啟tomcat服務(wù)器即可安裝

02.png

  2.安裝矢量插件


  這是從官網(wǎng)插件下載后的并且解壓后的樣子,安裝方式同Mongo插件一樣

03.png

  三、關(guān)于Selenium中XPath的使用技巧


  1.在要操作的網(wǎng)站按F12打開Chrome的調(diào)試工具,選擇元素選擇工具,如下圖所示:

04.png

  2.選擇你要操作的元素,如下所示:在這里插入圖片描述

05.png

  3.右鍵Copy,選擇復(fù)制完整的XPath路徑,這樣就可以精準(zhǔn)的引用到代碼中了。

06.png

  四、腳本編寫


  完整代碼如下:


  from selenium import webdriver
  from selenium.webdriver.support.ui import Select
  import time
  count=0#用于統(tǒng)計(jì)帶發(fā)布圖層個(gè)數(shù)
  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"))#選擇工作區(qū)
  time.sleep(1)
  select.select_by_index(4)#這里數(shù)字根據(jù)需求自行調(diào)整
  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')
  #統(tǒng)計(jì)MongoDB中待發(fā)布的圖層個(gè)數(shù)
  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"))#選擇工作區(qū)
  time.sleep(1)
  select.select_by_index(14)#這里數(shù)字根據(jù)需求自行調(diào)整
  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()#點(diǎn)擊進(jìn)入發(fā)布配置
  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()#點(diǎn)擊需要添加的矢量切片
  #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()#點(diǎn)擊需要添加的矢量切片
  #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()#點(diǎn)擊需要添加的矢量切片
  #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()#點(diǎn)擊需要添加的矢量切片
  #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)#添加時(shí)長
  #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)#添加時(shí)長
  #time.sleep(1)
  wd.find_element_by_css_selector("#page div.button-group.selfclear>a:nth-child(1)").click()
  time.sleep(1)


  解釋一下:代碼中出現(xiàn)了time.sleep(6),6秒,大家可能會(huì)覺得等待的時(shí)間有些長,但是這是博主在實(shí)踐中覺得可行的時(shí)間。因?yàn)橛械牡胤綌?shù)據(jù)量太大,geoserver計(jì)算邊框時(shí)會(huì)耗時(shí)較長,導(dǎo)致崩潰,如果大家的數(shù)據(jù)量較小,則可以把,這里的時(shí)間調(diào)小,或者沒有。


  這里Mongon的鏈接之類的工作都是在,之前手動(dòng)操作的,沒有做自動(dòng)化,畢竟也沒有多少,這就是半自動(dòng)化,而監(jiān)督是腳本執(zhí)行過程中如果還是避免不了,計(jì)算時(shí)間過長,則相應(yīng)圖層手動(dòng)發(fā)布,之后的調(diào)整代碼for循環(huán)的range后再次執(zhí)行即可。


  再給大家曬一下geoserver計(jì)算邊框時(shí)長超過的后果:


  綜上所述,這篇內(nèi)容就給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/128444.html

相關(guān)文章

  • 基于Python實(shí)現(xiàn)GeoServer矢量文件批量發(fā)布

      小編寫這篇文章的主要目的,主要是來給大家做個(gè)詳細(xì)的解答,解答的內(nèi)容主要是Python的相關(guān)內(nèi)容,包括利用Python實(shí)現(xiàn)GeoServer矢量文件的批量發(fā)布,具體是怎么樣進(jìn)行操作呢?下面就給大家詳細(xì)解答下?! ?.前言  由于矢量圖層文件較多,手動(dòng)發(fā)布費(fèi)時(shí)費(fèi)力,python支持的關(guān)于geoserver包(geoserver-restconfig)又由于年久失修,無法在較新的geoserver版...

    89542767 評(píng)論0 收藏0
  • [Python自動(dòng)化]selenium之文件批量下載

    摘要:自動(dòng)化這一專欄,將以目的為導(dǎo)向,以簡化或自動(dòng)化完成工作任務(wù)為目標(biāo),將運(yùn)用于實(shí)踐中,解決實(shí)際問題,以激發(fā)讀者對(duì)這門腳本語言的學(xué)習(xí)興趣。 Python 自動(dòng)化 這一專欄...

    wzyplus 評(píng)論0 收藏0
  • 使用selenium模擬瀏覽器抓取淘寶商品美食信息

    摘要:目標(biāo)通過模擬瀏覽器抓取淘寶商品美食信息,并存儲(chǔ)到數(shù)據(jù)庫中。流程框架淘寶頁面比較復(fù)雜,含有各種請(qǐng)求參數(shù)和加密參數(shù),如果直接請(qǐng)求或者分析將會(huì)非常繁瑣。 目標(biāo) 通過Selenium模擬瀏覽器抓取淘寶商品美食信息,并存儲(chǔ)到MongoDB數(shù)據(jù)庫中。 流程框架 淘寶頁面比較復(fù)雜,含有各種請(qǐng)求參數(shù)和加密參數(shù),如果直接請(qǐng)求或者分析Ajax將會(huì)非常繁瑣。Selenium是一個(gè)自動(dòng)化測(cè)試工具,可以驅(qū)動(dòng)瀏覽...

    djfml 評(píng)論0 收藏0
  • 怎么使用python對(duì)圖片進(jìn)行批量壓縮

      小編寫這篇文章的主要目的,主要是講解一些關(guān)于python的事情,比如需要對(duì)圖片進(jìn)行批量壓縮,壓縮的方法還是比較的多的,那么,為了提高效率,怎么進(jìn)行批量壓縮呢?下面就給大家詳細(xì)解答下?! ∏把浴 ∽罱谘芯吭趺磳?duì)圖片資源進(jìn)行無損壓縮,網(wǎng)上也找了一些資料??偠灾?,收獲不少,所以想對(duì)最近的學(xué)習(xí)做個(gè)總結(jié)?! o損壓縮其實(shí)是相對(duì)而言的,目的是為了減小圖片資源的內(nèi)存大小但又不影響圖片的顯示質(zhì)量。下面我將...

    89542767 評(píng)論0 收藏0
  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<