我想在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?
答案 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)