定時執行bat指令碼呼叫python獲取web特定返回值
阿新 • • 發佈:2020-11-30
最近要對公司網站狀態進行定期確認,決定自己寫個小程式進行自動實現。
第一步:實現獲取網頁返回值
登陸網站點選到最後的獲取資訊的網頁,通過F12獲取網站的url,具體的在
然後右邊的訊息頭中獲取get裡面的url
然後在右邊的響應中檢視返回的資訊,確認想要使用的特定返回值。
1 import json 2 import requests 3 import datetime 4 5 url = 'https://monitortools4.china-ipv6.cn/api/quick?domain=www.xxxx.com' # 呼叫的網址 6 7 response = requests.get(url) 8 jsonstr = json.loads(response.text) 9 10 11 ipv4 = jsonstr['data']['ipv4_req'] 12 ipv6 = jsonstr['data']['ipv6_req']
這裡在操作時遇到問題,因為這個網頁返回值為字典型別巢狀字典型別,所以當電泳jsonstr時用了兩個[]當時是通過挨個輸入字元型別發現data、ipv4_req和ipv6_req都是字典型別。
第二步:實現將輸出值寫入到txt檔案
經過baidu,目前常用的寫入文件兩種方式。
方式一:
path = '新建txt檔案的路徑' f = open(path,a) f.write(xxx) f.close()
方法二:
with open(path,"a") as f: f.write()
根據我自己的需求,我需要先對獲取的特定值進行判斷然後進行相應的輸出。
path = 'C:\\Users\\xxx\\Desktop\\webcheck.txt' if ipv6==1 and ipv4==1: file = open(path, 'a', encoding='utf-8') file.write(str(datetime.datetime.now())+"\n"+'成功'+"\n") file.close() else: file = open(path, 'a', encoding='utf-8') file.write(str(datetime.datetime.now())+"\n"+'失敗'+"\n") file.close()
這裡面我想實現的是輸出是顯示當前的時間然後換行在顯示正常與否,最初datetime.datetime.now()函式沒有加str進行強制型別出現了報錯,加上後程序正常。
程式裡面的引數a是指在txt文件裡面進行追加,不會覆蓋之前的內容。
第三步通過指令碼自動執行
新建一個txt檔案輸入
@echo off
C:
cd C:UsersxxxDesktop
start python text.py
exit
這裡說明下,text.py 是我的程式檔案,路徑是放在桌面的。
最後的定時執行我是通過windows自帶的程式任務實現的,這個就不在進行描述。
沒有進行過編碼工作,第一次嘗試,也是第一次寫部落格,請大佬勿噴。