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

时间:2015-06-04 05:31:13

标签: python time ntp

我想在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脚本代码。有没有办法从python中的time.gov中提取实时,有或没有ntplib?

3 个答案:

答案 0 :(得分:1)

使用urllib检索

http://time.gov/actualtime.cgi

返回类似这样的内容:

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

看起来像微秒

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

答案 1 :(得分:1)

假设目标只是为了获得美国政府的官方时间,你可以坚持使用NTP,并参考time.nist.gov,而不是time.gov。他们都是由NIST经营的。

答案 2 :(得分:0)

不知何故,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)