【demo 定时闹钟 】 python获取网络时间
程序员文章站
2022-07-12 11:18:36
...
【demo 定时闹钟 】 python获取网络时间
1.背景
采用爬虫,爬取www.beijing-time.org网站的北京时间。
北京时间又称中国标准时间。对应的网站:www.beijing-time.org
python:
3.7.9 (default, Aug 31 2020, 17:10:11) [MSC v.1916 64 bit (AMD64)]
参考:
https://blog.csdn.net/qq464685223/article/details/104515897
备注:爬取的节点可能因为网站的维护升级不可用,
目前2020.10.8测试可用。
2.检查元素,获取请求头和url以及数据
使用windows10集成的 Microsoft Edge浏览器打开
http://www.beijing-time.org/
点击右侧的网络
点击刷新:查看时间数据封包
请求头:
数据:
3.code
# -*- coding: utf-8 -*-
#2020.10.8测试有效
import time
import requests
import sys
print(sys.version)
#获取http://www.beijing-time.org/
#北京时间
def getBeijinTime():
try:
'''
headers是解决requests请求反爬的方法之一,
相当于我们进去这个网页的服务器本身,假装自己本身在爬取数据。
'''
#设置请求头信息
headers = {'User-Agent': 'Mozilla/5.0'}
# 设置请求地址:
url = r'http://time1909.beijing-time.org/time.asp'
#用python内置的requests包
r = requests.get(url=url,headers=headers)#
# 检查返回的通讯代码,200是正确返回;
if r.status_code == 200:
# 定义result变量存放返回的信息源码;
result = r.text
# 通过;分割文本;
data = result.split(";")
# 以下是数据文本处理:切割、取长度,最最基础的东西就不描述了;
year = data[1][len("nyear") + 3:] #年
month = data[2][len("nmonth") + 3:] #月
day = data[3][len("nday") + 3:] #日
wday = data[4][len("nwday")+1:] #星期
hrs = data[5][len("nhrs") + 3: ] #小时
minute = data[6][len("nmin") + 3:] #分钟
sec = data[7][len("nsec") + 3:] #秒
# 这个也简单把切割好的变量拼到beijinTimeStr变量里;
timeStr = "%s-%s-%s %s:%s:%s" % (year, month, day, hrs, minute, sec)
# 将timeStr转为时间戳格式;
#用到函数 time.strptime(),time.mktime()
timeArray = time.strptime(timeStr, '%Y-%m-%d %H:%M:%S') # 按照对应的格式转换为时间数组time.strptime()
timeStamp = int(time.mktime(timeArray)) # 转换成整形时间戳 time.mktime()
# 返回时间戳;
return timeStamp,timeStr
except:
return (-1)
if __name__=="__main__":
print(getBeijinTime())
运行结果: