diff --git a/gvlk/config.yml b/gvlk/config.yml new file mode 100644 index 0000000..bfbc788 --- /dev/null +++ b/gvlk/config.yml @@ -0,0 +1,4 @@ +lang: + - en-us + - zh-cn + - zh-tw diff --git a/gvlk/fetch.py b/gvlk/fetch.py index a4299a3..01aba3c 100755 --- a/gvlk/fetch.py +++ b/gvlk/fetch.py @@ -1,11 +1,11 @@ #!/usr/bin/env python3 import json +import yaml import requests from bs4 import BeautifulSoup -TIMEOUT = 10 -LANG = ['en-us', 'zh-cn', 'zh-tw'] +LANG = yaml.full_load(open('config.yml').read())['lang'] URL = 'https://learn.microsoft.com/%s/windows-server/get-started/kms-client-activation-keys' @@ -33,7 +33,7 @@ def extractKeys(items: list) -> dict: # detached from original html elements def fetchGvlk(lang: str) -> dict: # fetch GVLKs of the specified language - request = requests.get(URL % lang, timeout = TIMEOUT) + request = requests.get(URL % lang, timeout = 15) request.raise_for_status() # only http-code 2xx request.encoding = 'utf-8' content = BeautifulSoup(request.text, 'lxml').select('.content')[0] # html parsing @@ -72,4 +72,7 @@ def combineGvlk(rawData: dict) -> dict: # merge multiple languages gvlkData = combineGvlk({x: fetchGvlk(x) for x in LANG}) -print(json.dumps(gvlkData)) # output as json format + +with open('raw.json', 'w') as fp: # output as `raw.json` + fp.write(json.dumps(gvlkData, indent = 2, ensure_ascii = False)) + fp.write('\n')