python进行各类API的使用
前言:
献上歌曲一首:
因为快要上学了,昨天晚上熬夜。然后今天早上起床
没有什么精神。吃完午饭后开始思考今天写什么好呢
然后逛着逛着逛到了一个API网站。感觉还不错就爬了
0x01:
环境:windows
模块:requests
API的网站:http://www.avatardata.cn
0x2:
首先我们得去注册账号

注册号之后我们就可以去看你想要调用的API,点击价格标准可以见到所有API

我们可以看到有很多免费的API

看中你想要的然后点击那个
例:

直接申请就可以,他会给你key,所有免费API一天可查询1000次
这里我调了全国免费WIFI和天气预报与IP查询与最新新闻
0x03:
import requests
import optparse
import json
def main():
usage='usage:[-i IP query]' \
' [-m National wifi lat]' \
' [-l National wifi lon]' \
' [-x Daily News]' \
' [-t Info querry]'
parser=optparse.OptionParser(usage)
parser.add_option('-i',dest='ip',help='ip to query')
parser.add_option('-m',dest='wifi',help='National wifi lat')
parser.add_option('-l',dest='wifilon',help='National wifi lon')
parser.add_option('-x',action='store_true',dest='Daily',help='Daily News')
parser.add_option('-t',dest='info',help='info to query')
(options,args)=parser.parse_args()
if options.ip:
ipquery=options.ip
Ipquery(ipquery)
elif options.wifi and options.wifilon:
wifi=options.wifi
wifilon=options.wifilon
Wifi(wifi,wifilon)
elif options.Daily:
Daily()
elif options.info:
info=options.info
Info(info)
else:
parser.print_help()
exit()
def Ipquery(ipquery):
url="http://api.avatardata.cn/IpLookUp/LookUp?key=6a4c1df4ba10453da7ee1d50165bfd08&ip={}".format(ipquery)
header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
r=requests.get(url,headers=header)
sdw=r.content.decode('utf-8')
lks=json.loads(sdw)
print('[*]ip',ipquery)
print('[*]area:',lks['result']['area'])
print('[*]location:',lks['result']['location']) def Wifi(wifi,wifilon):
url = "http://api.avatardata.cn/Wifi/QueryByRegion?key=你的key&lon={}&lat={}&r=3000&type=1".format(wifi,wifilon)
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
r = requests.get(url, headers=header)
sds = r.json()
poswe = sds['result']['data'][:]
for k in poswe:
print("名字:", k['name'], "详细位置:", k['intro'], "地址:", k['address'], "纬度:", k['google_lat'], "经度:",k['google_lon'], "城市:", k['city'])
def Daily():
url = "http://api.avatardata.cn/TouTiao/Query?key=你的key&type=top"
header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
r = requests.get(url, headers=header)
sds = r.json()
poswe = sds['result']['data'][:]
for k in poswe:
print("标题:", k['title'], "日期:", k['date'], "网站来源:", k['author_name'], "新闻url:", k['url'])
def Info(info):
url = "http://api.avatardata.cn/Weather/Query?key=你的key={}".format(info)
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
r = requests.get(url, headers=header)
sds = r.json()
print('-------------今天天气-----------------')
print("风度:", sds['result']['realtime']['wind']['direct'], "风力:", sds['result']['realtime']['wind']['power'])
print("天气:", sds['result']['realtime']['weather']['info'], "温度:",
sds['result']['realtime']['weather']['temperature'])
print("时间:", sds['result']['realtime']['date'], "地点:", sds['result']['realtime']['city_name'], "农历:",
sds['result']['realtime']['moon'])
print("空调:", sds['result']['life']['info']['kongtiao'], "运动:", sds['result']['life']['info']['yundong'])
print("紫外线:", sds['result']['life']['info']['ziwaixian'], "感冒:", sds['result']['life']['info']['ganmao'])
print('洗车:', sds['result']['life']['info']['xiche'], "污染:", sds['result']['life']['info']['wuran'])
print('穿衣:', sds['result']['life']['info']['chuanyi'])
print('---------------未来几天-----------------')
lijs = sds['result']['weather'][:]
for b in lijs:
print("日期:", b['date'], "星期几:", b['week'], "农历:", b['nongli'], "早上天气:", b['info']['dawn'], "中午天气:",
b['info']['day'], "晚上天气:", b['info']['night']) if __name__ == '__main__':
main()
一共实现了4个参数

-i截图 IP查询

-m和-l 截图 全国免费wifi查询

-x截图 新闻

-t截图 天气预告

距离上学还有4天,啊啊啊啊啊啊
各位朋友们,我先去洗澡= =
python进行各类API的使用的更多相关文章
- 使用Python结合Face++ API识别人脸
Face++是北京旷视科技旗下的视觉服务平台,可以进行人脸识别.检测等功能.其人脸识别技术据悉在目前准确率较高,其API非常友好,免费使用,功能众多,而且调用几乎没有限制.这里我使用了Python调用 ...
- 使用Python调用Flickr API抓取图片数据
Flickr是雅虎旗下的图片分享网站,上面有全世界网友分享的大量精彩图片,被认为是专业的图片网站.其API也很友好,可以实现多种功能.这里我使用了Python调用其API获得了大量的照片数据.需要注意 ...
- 使用python+pychram进行API测试(接口测试)初级STEP 1
花了一天时间安装了解了下最基本的python+pychram进行API测试,下面这个可以指导自己以后入门:基本的开发级别还需要学习 1.python下载地址:https://www.python.or ...
- phoenix 开发API系列(二)phoenix 各类 api 实现方式
概述 上一篇已经提到如何安装以及利用 phoenix framework 来开发一个简单的 api. 接着上次的工程,下面演示如何通过 phoenix framework 来构建各种类型的 api 来 ...
- 免费的无次数限制的各类API接口(2)
之前整理过一些聚合数据上的免费API(各类免费的API接口分享,无限次),这次还有一些其他的进行了整理,主要是聚合数据上和API Store上的一些,还有一些其他的. 聚合数据提供30大类,160种以 ...
- WEB自动化(Python+selenium)的API
在做Web自动化过程中,汇总了Python+selenium的API相关方法,给公司里的同事做了第二次培训,分享给大家 ...
- 使用sphinx快速为你python注释生成API文档
sphinx简介sphinx是一种基于Python的文档工具,它可以令人轻松的撰写出清晰且优美的文档,由Georg Brandl在BSD许可证下开发.新版的Python3文档就是由sphinx生成的, ...
- 基于python调用libvirt API
基于python调用libvirt API 1.程序代码 #!/usr/bin/python import libvirt import sys def createConnection(): con ...
- python安装包API文档
在python开发过程中,经常会使用第三方包,或者内置的包. 那么这些包,具体有哪些选项,有哪些方法,你知道吗?下面介绍一种万能方法. 使用命令:<注意,命令里python显示的API版本是根据 ...
随机推荐
- Codeforces 448 E. Divisors (DFS,储存结构)
题目链接:E. Divisors 题意: 给出一个X,f(X)是X所有约数的数列(例6:1 2 3 6),给出一个k,k是递归的次数(例:k=2 : f(f(X)) ; X=4,k=2: 1 1 2 ...
- hive导出查询文件到本地文件的2种办法
通过HQL语句 可以将hive 中表的数据生成到指定的目录. 有时候 我们可以利用hive来生成统计的中间文件(比源文件小的多的) 方法有如下2种: 1.INSERT OVERWRITE LOCAL ...
- Java数据持久层框架 MyBatis之API学习七(动态 SQL详解)
对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...
- Azure Powershell获取指定订阅下的虚拟机信息(ASM)
为方便Azure用户导出已创建虚拟机的相关信息,特编写如下脚本: 详情脚本: # 登陆Azure Account Add-AzureAccount -Environment AzureChinaClo ...
- 数据仓库搭建——Inmon与Kimball
一.简介 1.1 历史 搞数据仓库这么久,实践中发现首先搭建数据集市,还是清洗数据之后,直接进入数据立方体(形成维度表和实施表)形成核心数据仓库层,是个选择题... 随后发现这其实涉及到了数据仓库的历 ...
- SQL 2005/2008 连接SQL 2000报18456错误
在看文章前,你先看看下面这两个问题,考考你对MSSMS工具的掌握情况: 1: SQL 2005/2008 能连接 SQL 2000数据库服务器吗? 2: SQL 2000 能连接SQL 2005/20 ...
- mysql数据库安装注意事项:
mysql数据库安装注意事项: https://jingyan.baidu.com/article/642c9d34aa809a644a46f717.html(安装教程) 注意语言设置为gbk可以解决 ...
- Python实现XML文件解析
1. XML简介 XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用.它是web ...
- 13 Basic Cat Command Examples in Linux(转) Linux中cat命令的13中基本用法
Cat (串联) 命令是Linux/Unix开源系统中比较常用的一个命令.我们可以通过Cat命令创建一个或多个文件,查看文件内容,串联文件并将内容输出到终端设备或新的文件当中,这篇文章我们将会以实例的 ...
- 面试中的DNS
DNS 当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称.客户机发送的每条查询信息包括三条信息:指定的DNS域名,指定的查询类型,DNS域名的指定类别. DNS基于UDP服务,端 ...