如何在 python 中提取实时形式 time.gov?

how extract real time form time.gov in python?

我想在 time.gov 的程序中实时显示。我看到了 ntplib 模块和这个例子:

import ntplib
from time import ctime
c = ntplib.NTPClient()
response = c.request('europe.pool.ntp.org', version=3)
ctime(response.tx_time)

但我不能使用 time.gov 而不是 'europe.pool.ntp.org' 因为 time.gov 不是 ntp 服务器。我还在页面源代码中看到了一些 java 脚本代码。有没有办法在有或没有 ntplib 的情况下从 python 中的 time.gov 中提取实时信息?

使用 urllib 检索

http://time.gov/actualtime.cgi

那个 returns 像这样的东西:

<timestamp time="1433396367767836" delay="0"/>

看起来像微秒

>>> time.ctime(1433396367.767836)
'Thu Jun  4 15:39:27 2015'

假设目标只是获得美国政府官方时间,您可以坚持使用 NTP,并参考 time.nist.gov,而不是 time.gov。它们都是 NIST 运行。

ntp 时间服务器不知何故被我们研究所系统中的防火墙阻止了。因此,在这种情况下,另一种选择是从网站上 抓取 时间。 您将需要 chrome 到 运行 的驱动程序,可以从 here 下载。 这是工作代码:

from selenium import webdriver
import time
from datetime import datetime
# Chromedriver can be downloaded from https://chromedriver.chromium.org/
driver_path = r'pathtochromedriver\chromedriver.exe'
driver = webdriver.Chrome(driver_path)
# Reference website for datetime
url = 'https://www.time.gov/'
driver.get(url)
# Wait to respond
time.sleep(4)
# Correct time
timedata = driver.find_element_by_xpath('//*[@id="timeUTC"]')
# Correct date
datedata = driver.find_element_by_xpath('//*[@id="myDate"]')
result_time = timedata.text
result_date = datedata.text
driver.close()  # close the webpage
result_datetime = result_date[7:]+result_time
datetime_now = datetime.strptime(result_datetime, '%m/%d/%Y%H:%M:%S')
print(datetime_now)