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'][0:]
    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'][0:]
    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'][0:]
    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天,啊啊啊啊啊啊

各位朋友們,我先去洗澡= =

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM