【Python 爬蟲】使用新榜API獲取數據

一、需求

每日獲取新榜網站收藏的微信公衆號對應的【點贊數、排名、頭條閱讀數】

二、實現-分解

1)獲取新榜api

打開並登錄新榜網站-數據服務-數據API
點擊試用即可,到達控制檯,你的賬號就獲得API密鑰,以及2000unit額度
在這裏插入圖片描述

2)發送HTTP請求

點擊“查看文檔”,跳轉到接口列表,這裏可以看到每種接口單次消耗unit數,選擇所需的平臺接口,我需要的是“微信-榜單-公衆號歷史榜單”
閱讀api說明以及相關參數
在這裏插入圖片描述在這裏插入圖片描述

import requests
url_api='https://api.newrank.cn/api/sync/weixin/rank/account/day'
headers={'Key':'xxxxxxxxxxxxxxxxxxx'}
body={'account':'要查詢的微信號','from':'2019-11-03','to':'2019-11-02'}
response=requests.post(url_api,data=body,headers=headers)#請求方式:POST,Content-Type:application/x-www-form-urlencoded;charset=utf-8
response.json()

在這裏插入圖片描述

三、實現-整合

import requests
import datetime
import sys
def main(dnum):
    ystday=(datetime.date.today()-datetime.timedelta(days=1)).strftime('%Y-%m-%d')#昨天
    date=(datetime.date.today()-datetime.timedelta(days=int(dnum))).strftime('%Y-%m-%d')#dnum天前
    url_api='https://api.newrank.cn/api/sync/weixin/rank/account/day'
    headers={'Key':'xxxxxxxxxxxxxxxxxxxxxxxxx'}


    def condata(account):
        body={'account':account,'from':date,'to':ystday}
        response=requests.post(url_api,data=body,headers=headers)#請求方式:POST,Content-Type:application/x-www-form-urlencoded;charset=utf-8
        all_con=account+'\n'
        for i in range(len(response.json()['data'])-1,-1,-1):
            con=str(response.json()['data'][i]['articleLikesCount'])+'\t'+\
                str(response.json()['data'][i]['rankPosition'])+'\t'+\
                str(response.json()['data'][i]['articleClicksCountTopLine'])+'\t'+\
                response.json()['data'][i]['rankDate'][0:10]+'\n'
            all_con=all_con+con
        return all_con

    f=open(r'G:\temp files\xb.txt','w')
    f.write(condata('yyyyyyyyyy')+condata('zzzzzzzz'))
    f.close()



if __name__=='__main__':
    try:
        main(sys.argv[1])
    except:
        main(1)#默認昨天1天
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章