Elasticsearch の plug-in の指定サイトの最新バージョンをチェックしてみる

Elasticsearch の plug-in の指定サイトの最新バージョンをチェックしてみる
#目的
Fessで使用するElasticsearchのpluginの最新バージョンをチェックしてみる
[Docs » ドキュメント » Fess インストールガイド » インストール](https://fess.codelibs.org/ja/13.7/install/install.html)
に記述されている以下のpluginを対象にする
<pre>
$ ./elasticsearch-<version>/bin/elasticsearch-plugin install org.codelibs:elasticsearch-analysis-fess:7.7.0
$ ./elasticsearch-<version>/bin/elasticsearch-plugin install org.codelibs:elasticsearch-analysis-extension:7.7.0
$ ./elasticsearch-<version>/bin/elasticsearch-plugin install org.codelibs:elasticsearch-configsync:7.7.0
$ ./elasticsearch-<version>/bin/elasticsearch-plugin install org.codelibs:elasticsearch-dataformat:7.7.0
$ ./elasticsearch-<version>/bin/elasticsearch-plugin install org.codelibs:elasticsearch-minhash:7.7.0
</pre>
各ページを[org/codelibs](https://repo1.maven.org/maven2/org/codelibs/)よりローカルにDL後、名前を修正してデバッグしている
※本家に対しては未だ動かしていない・・・
辞書を使って集計とかはVBAではよくやっているんだけど、これで良いのかな？

#サンプルコード

```python
# 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 が辞書に存在すれば１を加算
                    adict[atext] =  adict[atext] + 1
                else:
                    # 新規は個数１
                    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()
```
#参考にしたサイトはこちら
[Docs » ドキュメント » Fess インストールガイド » インストール](https://fess.codelibs.org/ja/13.7/install/install.html)
[org/codelibs](https://repo1.maven.org/maven2/org/codelibs/)
[【Python入門】dictionary（辞書）の使い方。基本と応用](https://www.sejuku.net/blog/24122)
[Pythonの正規表現モジュールreの使い方（match、search、subなど）](https://note.nkmk.me/python-re-match-search-findall-etc/)
[Fess の plug-in のサイトをxpathを使用して検索＆表示してみる](https://qiita.com/tabizou/items/2f40be355d7340379019)