Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将时间减去或添加到web刮取时间_Python_Time - Fatal编程技术网

Python 将时间减去或添加到web刮取时间

Python 将时间减去或添加到web刮取时间,python,time,Python,Time,我正在为自己编写一个一次性脚本,以获取星期五和星期六的日落时间,以便确定安息日和哈夫达拉的开始时间。现在,我可以使用BeautifulSoup从timeanddate.com上抓取时间并将其存储在列表中。不幸的是,我被那些时间困住了;我想做的是能够减去或增加时间。由于安息日蜡烛点燃的时间是日落前18分钟,我希望能够将给定的周五日落时间减去18分钟。以下是迄今为止我掌握的代码: import datetime import requests from BeautifulSoup import Be

我正在为自己编写一个一次性脚本,以获取星期五和星期六的日落时间,以便确定安息日和哈夫达拉的开始时间。现在,我可以使用BeautifulSoup从timeanddate.com上抓取时间并将其存储在列表中。不幸的是,我被那些时间困住了;我想做的是能够减去或增加时间。由于安息日蜡烛点燃的时间是日落前18分钟,我希望能够将给定的周五日落时间减去18分钟。以下是迄今为止我掌握的代码:

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之间有多少秒?