zoukankan      html  css  js  c++  java
  • 调用ZoomEye API获取信息

    最近在提高自己编程能力,拿一些实用的小工具练下。该脚本为python语言,主要涉及模块urllib,json,os模块。

    功能:调用ZoomEye API获取信息

    import urllib.request
    import json
    import os
    
    def login():
            username = input("username:")
            password = input("password:")
            url = "https://api.zoomeye.org/user/login"
            data = json.dumps({'username':username,'password':password})
            data_bytes = bytes(data,'utf8')
            try:
                    req = urllib.request.Request(url,data_bytes)
                    response = urllib.request.urlopen(req)
                    html = response.read().decode('utf-8')
                    target = json.loads(html)
                    
                    access_token = target['access_token']
                    with open('access_token.txt','w') as f:
                            f.write(access_token)
                            f.close
                            print('login seccess !!!')
                    #print('your access_token is:%s'%(access_token))
            except Exception as err:
                    print('[info]:username or password is wrong !')
                    
    
    def apiget():
            while True:
                    host_or_web = input("search for host or web:(‘q!’Sign out):")
                    if host_or_web == 'q!':
                            break
                    query = input("input your keyword(-r for your resources-info):")  #查看自己的套餐剩余量
                    if query == '-r':
                            req = urllib.request.Request('https://api.zoomeye.org/resources-info')
                            ida = open('access_token.txt').read() 
                                    
                            req.add_header('Authorization','JWT %s'%(ida))
                            re = urllib.request.urlopen(req)
                            ae = (re.read().decode('utf-8'))
                            ae = target = json.loads(ae)
                            dict_web = ae['resources']['web-search']
                            dict_host = ae['resources']['host-search']
                            print('your web search:%s'%(dict_web))
                            print('your host search:%s'%(dict_host))
                    else:
                            try:
                       req
    = urllib.request.Request('https://api.zoomeye.org/%s/search?query=%s'%(host_or_web,query)) idb = open('access_token.txt').read() req.add_header('Authorization','JWT %s'%(idb)) r = urllib.request.urlopen(req) a = (r.read().decode('utf-8')) a = target = json.loads(a) print('tatal:%s'%(a['total'])) for i in range(len(a['matches'])): print (a['matches'][i]['ip']) except Exception as err: print('[erro]:Please enter the correct syntax !') def start(): if not os.path.isfile('access_token.txt'): #首次使用会检查脚本目录下access_token.txt文件,没有的话登录会创建 print('[info]:you need login') login() apiget() if __name__ == '__main__'
    : start()

  • 相关阅读:
    神经网络梯度下降的推导
    在虚拟环境里安装TensorFlow-cpu完成Ng作业
    利用anaconda配置虚拟环境
    Java基础(三)面向对象(下)
    Java基础(二)面向对象(上)
    Java基础(一)
    《深入理解计算机系统》阅读笔记--程序的机器级表示(上)
    《深入理解计算机系统》阅读笔记--信息的表示和处理(下)
    《深入理解计算机系统》阅读笔记--信息的表示和处理(上)
    《深入理解计算机系统》阅读笔记--计算机系统漫游
  • 原文地址:https://www.cnblogs.com/cui0x01/p/6181588.html
Copyright © 2011-2022 走看看