请尝试检查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插件网站

广告
将在 10 秒后关闭
bannerAds