I am working on a project, where I need to exit the loop when already_exists
is True. I am not able to do so here. Or maybe I have put the loop wrongly.
loop = True
while loop is True:
#loop for page numbers
for page in range(1, 10):
#prints page number on terminal
print("Getting page {}..".format(page))
#getting data from the website
params["paged"] = page
data = requests.post(url, data=params).json()
soup = BeautifulSoup(data["markup"], "html.parser")
#loop to get the data from each entry (livewire-entry)
for entry in soup.select(".livewire-entry"):
datime = entry.select_one(".adate") #date&time ----- (1)
status = entry.select_one(".status") #status ----- No conditions
name = status.find_next("strong") #school ----- No conditions
details = entry.select_one(".lw-details") #details ----- (2)
datime = datime.get_text(strip=True)
datime = datetime.datetime.strptime(datime, '%B %d, %Y %I:%M%p')
time = str(datime.time()) #returns time
date = str(datime.date()) #returns date
already_exists = False
for firstentry in csvFileArray:
already_exists = (firstentry['Date'] == date
and firstentry['Time'] == time
and firstentry['Status'] == (status.get_text(strip=True))
and firstentry['School'] == name.get_text(strip=True)
and firstentry['Details'] == details.get_text(strip=True))
if already_exists:
print('drop')
loop = False
break
if not already_exists:
print('updating...')
writer.writerow(
[date, time, status.get_text(strip=True), name.get_text(strip=True), details.get_text(strip=True)])