import requests
import json
def get_between(txt, a1, a2):
aStart = txt.index(a1)+len(a1)
txt = txt[aStart:]
aEnd = txt.index(a2)
txt = txt[:aEnd]
return txt
def move_forward(txt, a1, a2):
aStart = txt.index(a1)+len(a1)
txt = txt[aStart:]
aEnd = txt.index(a2)+len(a2)
txt = txt[aEnd:]
return txt
def kblogic_dl():
kblayout = {}
kb = requests.get("https://master.horseisle.com/web/helpcenter.php")
kbLst = get_between(kb.content, b"
")
# print(kbLst)
kbNameLst = []
while True:
try:
kbEntry = get_between(kbLst, b"", b" | ")
kbName = get_between(kbEntry, b"").decode("UTF-8")
kbNameLst.append(kbName)
print(kbName)
kbLst = move_forward(kbLst, b"", b" | ")
except:
break
# kblayout["kbNames"] = kbNameLst
kblayout["kbData"] = []
for kbName in kbNameLst:
kbSubNameLst = []
kb = requests.get("https://master.horseisle.com/web/helpcenter.php?MAIN="+kbName)
print("Downloading subnames for "+kbName)
kbLst = get_between(kb.content, b"")
while True:
try:
kbEntry = get_between(kbLst, b"", b" | ")
print(kbEntry)
kbSubName = get_between(kbEntry, b"&SUB=", b"#KB").decode("UTF-8")
print(kbName+":"+kbSubName)
kbSubNameLst.append(kbSubName)
kbLst = move_forward(kbLst, b"", b" | ")
except:
break
kbLs = []
# Get ids in sub
for kbSubName in kbSubNameLst:
kbSubObjects = []
kb = requests.get("https://master.horseisle.com/web/helpcenter.php?MAIN="+kbName+"&SUB="+kbSubName)
print("Downloading objects for "+kbName+":"+kbSubName)
kbLst = get_between(kb.content, b" | |
")
while True:
try:
kbEntry = get_between(kbLst, b"", b" | ")
print(kbEntry)
kbObjectId = get_between(kbEntry, b"&KBID=", b"#KB").decode("UTF-8")
print(kbName+":"+kbSubName+":"+kbObjectId)
kbSubObjects.append(int(kbObjectId))
kbLst = move_forward(kbLst, b"", b" | ")
except Exception as e:
print(e)
break
pData = {"kbSubName":kbSubName, "kbIds":kbSubObjects}
kbLs.append(pData)
kblayout["kbData"].append({"kbName":kbName, "kbList": kbLs})
print(json.dumps(kblayout))
open("kblogic.json","wb").write(json.dumps(kblayout).encode("UTF-8"))
def kbid_dl():
knowledgeBase = 1
kbF = open("kb_id.json", "wb")
failedInARow = 0
kbF.write(b"[\r\n")
while True:
try:
kb = requests.get("https://master.horseisle.com/web/helpcenter.php?KBID="+str(knowledgeBase))
kbC = get_between(kb.content, b"
")
kbTitle = get_between(kbC, b" ",b": ")
kbC = move_forward(kbC, b" ",b": ")
kbData = {"kbId":knowledgeBase, "kbTitle":kbTitle.decode("UTF-8"), "kbContent": kbC.decode("UTF-8")}
print(json.dumps(kbData))
kbF.write(json.dumps(kbData).encode("UTF-8")+b",\r\n")
knowledgeBase+=1
failedInARow = 0
except Exception as e:
print(e)
knowledgeBase += 1
failedInARow += 1
if failedInARow > 50:
break
continue
kbF.write(b"]\r\n")
kbF.close()
#kblogic_dl()
kbid_dl()