Python 如何解决datetime中的错误str?
目标是使用datetime来重复以上内容 .... 到昨天为止 (应在Python 如何解决datetime中的错误str?,python,datetime,beautifulsoup,python-datetime,Python,Datetime,Beautifulsoup,Python Datetime,目标是使用datetime来重复以上内容 .... 到昨天为止 (应在new\u url=base\u url+str(enddate1)中完成) 然后在href中,我想在meetingfulllisttable中循环以获取name和href,然后从当天的每个曲目中获取结果数据 我当前的错误是“这个 这是一根绳子。这就是为什么会出现错误BTW,没有像=+这样的操作符-它会被误解为enddate1=(+timedelta(days=1))问题是,当你进入while循环时enddate1和yeste
new\u url=base\u url+str(enddate1)
中完成)
然后在href中,我想在meetingfulllisttable中循环以获取name和href,然后从当天的每个曲目中获取结果数据
我当前的错误是“这个
这是一根绳子。这就是为什么会出现错误BTW,没有像
=+
这样的操作符-它会被误解为enddate1=(+timedelta(days=1))
问题是,当你进入while循环时enddate1
和yesterday1都是字符串,然后你将enddate1
分配给timedelta(days=1)
(不知道为什么)。所以您需要决定是要在datetime对象还是字符串之间进行比较。正如@Błotosmętek指出的,没有像=+
这样的操作符。我猜您想使用+=
操作符将enddate1
增加1天?正如我所说的,调用strftime(格式)datetime
对象上的为您提供了一个字符串。您无法使用timedelta
增加字符串。您应该只使用昨天的
和enddate
。如果您不确定某个方法的作用,那么也值得检查正在使用的库的文档。
from datetime import datetime, date, timedelta
import requests
import re
from bs4 import BeautifulSoup
base_url = "http://www.harness.org.au/racing/results/?firstDate="
base1_url = "http://www.harness.org.au"
webpage_response = requests.get('http://www.harness.org.au/racing/results/?firstDate=')
soup = BeautifulSoup(webpage_response.content, "html.parser")
format = "%d-%m-%y"
delta = timedelta(days=1)
yesterday = datetime.today() - timedelta(days=1)
yesterday1 = yesterday.strftime(format)
enddate = datetime(2019, 1, 1)
enddate1 = enddate.strftime(format)
while enddate1 <= yesterday1:
enddate1 =+ timedelta(days=1)
new_url = base_url + str(enddate1)
soup12 = requests.get(new_url)
soup1 = BeautifulSoup(soup12.content, "html.parser")
table1 = soup1.find('table', class_='meetingListFull')
for tr in table1.find_all('tr'):
all_cells = tr.find_all('td')
track = all_cells.a.href.get_text()
href = all_cells.get('href')
trackresults = base1_url + href
yesterday1 = yesterday.strftime(format)