ARL资产灯塔系统分组资产导出脚本

导出某一组资产,如图

因为某一组的资产没有导出的功能,所以自写了一个半自动导出脚本

半自动是因为需要自己填写token等信息,代码如下:

import requests

HOST=""
TOKEN=""
PAGENUM=34
scope_id=''

headers={
    "Host": HOST,
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0",
    "Accept": "application/json, text/plain, */*",
    "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
    "token": TOKEN,
    "Connection": "close"
}
sitepool=set()
def getContent(url):
    try:
        rep=requests.get(url=url,headers=headers)
        urllist=eval(rep.text)["items"]
        for url in urllist:
            site=url['site']
            print(site)
            sitepool.add(site)
    except Exception as e :
        print(e)
        pass
    return

def Save():
    filename = 'AAA.txt'
    with open(filename, 'a+') as f:
        while len(sitepool)!=0:
            line=sitepool.pop()
            f.write("{}
".format(line))

def main():
    for i in range(1,PAGENUM):
        url='http://{}/api/asset_site/?page={}&size=10&scope_id={}'.format(HOST,i,scope_id)
        getContent(url)
    print(len(sitepool))
    Save()
    return

if __name__ == '__main__':
    main()

需要自己填充的信息为全局变量部分

HOST=""
TOKEN=""
PAGENUM=34
scope_id=''

简单解释一下,HOST为搭建资产灯塔系统的URL,比如:127.0.0.1:5003,TOKEN为每次登录时的凭证信息,F12查看网络信息可以获取到,PAGENUM是分组资产的页数,如图:

所以这里填写34

scope_id是资产分组后的ID,点击分组资产后在URL中可以看到:

将这四个参数填写后运行即可导出结果,结果保存在AAA.txt

原文地址:https://www.cnblogs.com/Cl0ud/p/14175724.html