Python 将时间减去或添加到web刮取时间
我正在为自己编写一个一次性脚本,以获取星期五和星期六的日落时间,以便确定安息日和哈夫达拉的开始时间。现在,我可以使用BeautifulSoup从timeanddate.com上抓取时间并将其存储在列表中。不幸的是,我被那些时间困住了;我想做的是能够减去或增加时间。由于安息日蜡烛点燃的时间是日落前18分钟,我希望能够将给定的周五日落时间减去18分钟。以下是迄今为止我掌握的代码:Python 将时间减去或添加到web刮取时间,python,time,Python,Time,我正在为自己编写一个一次性脚本,以获取星期五和星期六的日落时间,以便确定安息日和哈夫达拉的开始时间。现在,我可以使用BeautifulSoup从timeanddate.com上抓取时间并将其存储在列表中。不幸的是,我被那些时间困住了;我想做的是能够减去或增加时间。由于安息日蜡烛点燃的时间是日落前18分钟,我希望能够将给定的周五日落时间减去18分钟。以下是迄今为止我掌握的代码: import datetime import requests from BeautifulSoup import Be
import datetime
import requests
from BeautifulSoup import BeautifulSoup
# declare all the things here...
day = datetime.date.today().day
month = datetime.date.today().month
year = datetime.date.today().year
soup = BeautifulSoup(requests.get('http://www.timeanddate.com/worldclock/astronomy.html?n=43').text)
# worry not.
times = []
for row in soup('table',{'class':'spad'})[0].tbody('tr'):
tds = row('td')
times.append(tds[1].string)
#end for
shabbat_sunset = times[0]
havdalah_time = times[1]
到目前为止,我被困住了。times[]中的对象显示为BeautifulSoup NavigatableString,我无法将其修改为int(出于明显的原因)。任何帮助都将不胜感激,非常感谢
编辑
因此,我建议使用mktime并将BeautifulSoup的字符串转换为常规字符串。现在我得到了一个溢出错误:当我在沙巴打电话给mktime时,mktime超出了范围
for row in soup('table',{'class':'spad'})[0].tbody('tr'):
tds = row('td')
sunsetStr = "%s" % tds[2].text
sunsetTime = strptime(sunsetStr,"%H:%M")
shabbat = mktime(sunsetTime)
candlelighting = mktime(sunsetTime) - 18 * 60
havdalah = mktime(sunsetTime) + delta * 60
应该使用datetime.timedelta()函数 例如: 所需时间=datetime.datetime.now()+datetime.timedelta(分钟=18) 另请参见此处:
Shalom Shabbat我将采用的方法是将完整时间解析为一个正常的表示形式——在Python世界中,这个表示形式是自Unix时代(1970年1月1日午夜)以来的秒数。为此,您还需要查看第0列。(顺便说一句,tds[1]是日出时间,而不是我认为您想要的时间。) 见下文:
#!/usr/bin/env python
import requests
from BeautifulSoup import BeautifulSoup
from time import mktime, strptime, asctime, localtime
soup = BeautifulSoup(requests.get('http://www.timeanddate.com/worldclock/astronomy.html?n=43').text)
# worry not.
(shabbat, havdalah) = (None, None)
for row in soup('table',{'class':'spad'})[0].tbody('tr'):
tds = row('td')
sunsetStr = "%s %s" % (tds[0].text, tds[2].text)
sunsetTime = strptime(sunsetStr, "%b %d, %Y %I:%M %p")
if sunsetTime.tm_wday == 4: # Friday
shabbat = mktime(sunsetTime) - 18 * 60
elif sunsetTime.tm_wday == 5: # Saturday
havdalah = mktime(sunsetTime)
print "Shabbat - 18 Minutes: %s" % asctime(localtime(shabbat))
print "Havdalah %s" % asctime(localtime(havdalah))
第二,自助:“tds”列表是BeautifulSoup.Tag的列表。要获取此对象的文档,请打开Python终端,键入
导入美化组
help(BeautifulSoup.Tag)
mktime返回其参数与1970年1月1日之间的秒数。你没有提供足够的信息。1970年1月1日到下午5:30之间有多少秒?