【新手案例】Python3.7如何获取网络时间
參考之前Jimny的方式:https://www.cnblogs.com/chenjingyi/p/5741725.html
實現原理:用requests庫Get一個含有時間的網站獲取時間文本,并且整理成我們需要的時間格式或時間戳?!
目標網站:www.beijing-time.org
1.我們開始分析這個網站:注意:通過封包我們可以看到時間數據是一個time.asp傳過來的,而Jimny之前給我們的是直接www.beijing-time.org下的time.asp,這里卻變成了time1909.beijing-time.org,所以我們正確的Get地址是time1909.beijing-time.org,而不是www.beijing-time.org!
可以看到Get之后直接就返回時間數據了!!!
2.我們通過Python來實現獲取我們的時間:
首先要用pip把requests庫安裝好,Jimny用的是httplib庫,具體我用的時候在Python3.7下很多坑所以我放棄了!!安裝requests庫也可以在Pycharm下安裝(基本操作):
文件-》設置-》項目-》點擊+號-》搜索添加requests庫就可以了 這些都是很基本的就不說了。
3.實現代碼:
# -*- coding: utf-8 -*-import time import requestsdef getBeijinTime():try:# 設置頭信息,沒有訪問會錯誤400!!!hea = {'User-Agent': 'Mozilla/5.0'}# 設置訪問地址,我們分析到的;url = r'http://time1909.beijing-time.org/time.asp'# 用requests get這個地址,帶頭信息的;r = requests.get(url=url,headers=hea)# 檢查返回的通訊代碼,200是正確返回;if r.status_code == 200: # 定義result變量存放返回的信息源碼;result = r.text# 通過;分割文本;data = result.split(";")# ======================================================# 以下是數據文本處理:切割、取長度,最最基礎的東西就不描述了;year = data[1][len("nyear") + 3: len(data[1])]month = data[2][len("nmonth") + 3: len(data[2])]day = data[3][len("nday") + 3: len(data[3])]# wday = data[4][len("nwday")+1 : len(data[4])-1]hrs = data[5][len("nhrs") + 3: len(data[5]) - 1]minute = data[6][len("nmin") + 3: len(data[6])]sec = data[7][len("nsec") + 3: len(data[7])]# ======================================================# 這個也簡單把切割好的變量拼到beijinTimeStr變量里;beijinTimeStr = "%s/%s/%s %s:%s:%s" % (year, month, day, hrs, minute, sec)# 把時間打印出來看看;print(beijinTimeStr)# 將beijinTimeStr轉為時間戳格式;beijinTime = time.mktime(time.strptime(beijinTimeStr, "%Y/%m/%d %X"))#返回時間戳;return (beijinTime)except:return (-1)if __name__ == '__main__':print(getBeijinTime())運行結果如下,時間文本和時間戳打印出來了!!!
總結:
? ? ? ? 這些都是相當基礎的東西,但是之前有剛接觸編程的朋友說Python連網上連獲取北京時間的案例都沒有很難學,所以特意做了這個教程;不過在這里還是想提醒初學者,編程首先要學好基礎,然后就是要有舉一反三的學習能力,案例其實都是有的,只是類似的案例,或者由于一些網站或者Python更新了,出現代碼有小許變動導致無法使用的,這些時候就應該自己通過原理去研究如何實現自己想要的東西,特別是學習爬蟲的朋友,要知道你爬的網站是經常會變動的,一定要善于思考和自我總結經驗,拒絕成為伸手黨!!!
總結
以上是生活随笔為你收集整理的【新手案例】Python3.7如何获取网络时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 移动端自适应方案(转载)
- 下一篇: SQL Server第三方负载均衡方案