请尝试检查Elasticsearch插件指定站点的最新版本
去检查指定网站上Elasticsearch插件的最新版本。
目标
我们试着检查一下在Fess使用的Elasticsearch插件的最新版本。我们将目标对准以下在”Docs » ドキュメント » Fess インストールガイド » インストール”中所描述的插件。
$ ./elasticsearch-/bin/elasticsearch-plugin install org.codelibs:elasticsearch-analysis-fess:7.7.0
$ ./elasticsearch-/bin/elasticsearch-plugin install org.codelibs:elasticsearch-analysis-extension:7.7.0
$ ./elasticsearch-/bin/elasticsearch-plugin install org.codelibs:elasticsearch-configsync:7.7.0
$ ./elasticsearch-/bin/elasticsearch-plugin install org.codelibs:elasticsearch-dataformat:7.7.0
$ ./elasticsearch-/bin/elasticsearch-plugin install org.codelibs:elasticsearch-minhash:7.7.0
Org/codelibs 的中文翻译可以是”组织/代码库”。
示例代码
# Windows Add env PYTHONIOENCODING = UTF-8 & restart vscode
import re
import time
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.webdriver.chrome.options import Options
import chromedriver_binary
# ブラウザーを起動
options = Options()
options.binary_location = 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe'
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
# チェック対象となるページ
alist = [
'analysis-fess.html',
'analysis-extension.html',
'configsync.html',
'dataformat.html',
'minhash.html'
]
# 集計用の辞書
adict = {}
tgurl = 'http://localhost:8080/'
try:
# 5ページ分Loop
for lst in alist:
driver.get(tgurl + lst)
print(tgurl + lst)
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.TAG_NAME, 'a'))
)
xpath = "/html/body/main/pre/a"
elems = driver.find_elements_by_xpath(xpath)
# adict['pluginのバージョン'] = 個数
for elem in elems:
# \. では無いのか・・・
atext = re.sub('[/|.]', '', elem.text)
# atext = elem.text.replace("/","").replace(".","")
if atext.isdecimal():
if atext in adict.keys():
# 7.7.0/ -> 770 が辞書に存在すれば1を加算
adict[atext] = adict[atext] + 1
else:
# 新規は個数1
adict[atext] = 1
# time.sleep(2) # for Debug
# pluginのバージョンでソートする
dic1 = sorted(adict.items(), reverse=True)
# pluginのバージョンの最大値から個数=5が見つかるまでループ
for dic in dic1:
lt = list(dic)
if lt[1] == 5:
# このバージョンを指定してpluginをDLする
print(str(lt[0]) + ':' + str(lt[1]))
break
finally:
print('done')
driver.quit()
请查阅以下参考网站。
文档»文档»Fess安装指南»安装
org/codelibs
【Python入门】字典(辞書)的使用方法。基本原理和应用
Python正则表达式模块re的使用方法(match、search、sub等)
尝试使用xpath搜索和显示Fess插件网站