最近在提高自己编程能力,拿一些实用的小工具练下。该脚本为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()

调用ZoomEye API获取信息的更多相关文章

  1. 『Python』Python 调用 ZoomEye API 批量获取目标网站IP

    #### 20160712 更新 原API的访问方式是以 HTTP 的方式访问的,根据官网最新文档,现在已经修改成 HTTPS 方式,测试可以正常使用API了. 0x 00 前言 ZoomEye 的 ...

  2. 记-beego项目调用Jenkins API获取job信息

    type JenkinsController struct { beego.Controller } type Job struct { Name string `json:"name&qu ...

  3. js调用高德API获取所在当前城市

    可以在js代码中直接调用API接口,获取所处当前城市信息,代码如下: <script type="text/javascript"> function getCurre ...

  4. Vue 通过调用百度API获取地理位置-经度纬度省份城市

    一.首先在百度api注册获得ak密钥 二.新建js文件,我命名为loadBMap.js,里面创建script,代码如下: /** * 加载地图 * @param {Function} callback ...

  5. 调用windows api 获取系统分辨率

    c++中: int cxScreen,cyScreen; cxScreen=GetSystemMetrics(SM_CXSCREEN); cyScreen=GetSystemMetrics(SM_CY ...

  6. C# 调用win api获取chrome浏览器中地址

    //FindWindow 查找窗口 //FindWindowEx查找子窗口 //EnumWindows列举屏幕上的所有顶层窗口,如果回调函数成功则返回非零,失败则返回零 //GetWindowText ...

  7. android调用webservice接口获取信息

    我的有一篇博客上讲了如何基于CXF搭建webservice,service层的接口会被部署到tomcat上,这一篇我就讲一下如何在安卓中调用这些接口传递参数. 1.在lib中放入ksoap2的jar包 ...

  8. Java调用yahoo!API获取天气数据

    先把代码复制上来,以后再做补充 package com.weather.test; import java.io.InputStream; import java.net.URL; import ja ...

  9. C# 通过豆瓣网络编程API获取图书信息

    这篇文章主要是关于如何通过豆瓣API获取信息的书籍,起初,我看到了原来的想法的内容是"C# 网络编程之网页简单下载实现"中通过HttpWebResponse类下载源代码,再通过正則 ...

随机推荐

  1. asp.net mvc框架的一些切入点

    IhttpModule+配置文件,对请求进行进一步的整理.过滤与转发: global文件中以Application_xx的保护方法进行切入的方式,此方法等同于IHttpModule方法.IHttpMo ...

  2. ASP.NET Web API的核心对象:HttpController

    ASP.NET Web API的核心对象:HttpController 对于ASP.NET Web API来说,所谓的Web API定义在继承自ApiController的类中,可能ApiContro ...

  3. zTree应用实例详讲(3)

    zTree应用实例详讲(3) 上一讲中,已经讲到了重命名与删除.那么这一讲,我们来做新建文件夹. 其实新建是非常简单的,想一下我们想要的效果:点击新建,然后在一个节点下面出现一个新建的文件夹,并且与此 ...

  4. 里氏替换原则LSP(继承规范)

    继承的优点: 1.代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性. 2.提高代码的重用性. 3.子类可以形似父类,但又异于父类. 4.提高代码的可扩展性,实现父类的方法就可以“为所欲为” ...

  5. ubunt 命令行下链接VPN

    Ubuntu命令行下VPN连接与使用 route add default dev ppp0 route add -net 192.168.2.0 netmask 255.255.255.0 ppp0 ...

  6. ORM查询语言(OQL)简介高级篇

    ORM查询语言(OQL)简介--高级篇:脱胎换骨 在写本文之前,一直在想文章的标题应怎么取.在写了<ORM查询语言(OQL)简介--概念篇>.<ORM查询语言(OQL)简介--实例篇 ...

  7. OpenCV3.0.0+win10 64位+vs2015环境的下载,安装,配置

    操作系统:WIN10 pro 64 软件版本:VS2015+OpenCV3.0.0   1. 下载安装 http://opencv.org/ https://www.visualstudio.com/ ...

  8. A First Look at Rust Language

    文 Akisann@CNblogs / zhaihj@Github 本篇文章同时发布在Github上:http://zhaihj.github.io/a-first-look-at-rust.html ...

  9. Hadoop 统计文件中某个单词出现的次数

    如文件word.txt内容如下: what is you name? my name is zhang san. 要求统计word.txt中出现“is”的次数? 代码如下: PerWordMapper ...

  10. 算法之prim算法

    最小生成树是数据结构中图的一种重要应用,它的要求是从一个带权无向完全图中选择n-1条边并使这个图仍然连通(也即得到了一棵生成树),同时还要考虑使树的权最小. prim算法就是一种最小生成树算法. 普里 ...