|
D>
|
ca
|
2025-10-15 04:40:07
|
2025-11-17 04:00:59
|
IndexError: list index out of range
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca/people.py", line 54, in scrape
yield from self.scrape_people(rows, gender)
File "/app/scrapers/ca/people.py", line 67, in scrape_people
url = row.xpath('.//a[@class="ce-mip-mp-tile"]/@href')[0]
IndexError: list index out of range
|
|
C
|
ca_ab
|
2025-11-17 04:42:37
|
2025-11-17 04:42:37
|
|
|
C
|
ca_ab_calgary
|
2025-11-17 04:35:26
|
2025-11-17 04:35:26
|
|
|
C
|
ca_ab_edmonton
|
2025-11-17 04:13:20
|
2025-11-17 04:13:21
|
|
|
D>
|
ca_ab_grande_prairie
|
2025-10-27 04:21:42
|
2025-11-17 04:12:32
|
Exception: No phone pattern in Councillor Jena FlachPhone: Send EmailView full bio
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_ab_grande_prairie/people.py", line 22, in scrape
phone = self.get_phone(councillor)
File "/app/scrapers/utils.py", line 186, in get_phone
raise Exception(f"No phone pattern in {node.text_content()}")
Exception: No phone pattern in Councillor Jena FlachPhone: Send EmailView full bio
|
|
D>
|
ca_ab_grande_prairie_county_no_1
|
2025-07-15 04:33:22
|
2025-11-17 04:01:37
|
scrapelib.HTTPError: 404 while retrieving https://www.countygp.ab.ca/en/county-government/council.aspx
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_ab_grande_prairie_county_no_1/people.py", line 9, in scrape
page = self.lxmlize(COUNCIL_PAGE)
File "/app/scrapers/utils.py", line 217, in lxmlize
response = self.get(url, cookies=cookies, verify=verify)
File "/app/scrapers/utils.py", line 198, in get
return super().get(*args, verify=kwargs.pop("verify", SSL_VERIFY), **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/scrapelib/__init__.py", line 619, in request
raise HTTPError(resp)
scrapelib.HTTPError: 404 while retrieving https://www.countygp.ab.ca/en/county-government/council.aspx
|
|
D>
|
ca_ab_lethbridge
|
2025-10-31 04:14:18
|
2025-11-17 04:39:19
|
IndexError: list index out of range
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_ab_lethbridge/people.py", line 49, in scrape
yield self.scrape_person(url, seat_number)
File "/app/scrapers/ca_ab_lethbridge/people.py", line 32, in scrape_person
p.image = page.xpath('//span[contains(@class, "img-right")]/img/@src[1]')[0]
IndexError: list index out of range
|
|
C
|
ca_ab_strathcona_county
|
2025-11-17 04:26:35
|
2025-11-17 04:26:35
|
|
|
D>
|
ca_ab_wood_buffalo
|
2025-09-30 04:10:18
|
2025-11-17 04:28:13
|
scrapelib.HTTPError: 404 while retrieving https://www.rmwb.ca/en/mayor-council-and-administration/councillors.aspx
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_ab_wood_buffalo/people.py", line 27, in scrape
page = self.lxmlize(COUNCIL_PAGE)
File "/app/scrapers/utils.py", line 217, in lxmlize
response = self.get(url, cookies=cookies, verify=verify)
File "/app/scrapers/utils.py", line 198, in get
return super().get(*args, verify=kwargs.pop("verify", SSL_VERIFY), **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/scrapelib/__init__.py", line 619, in request
raise HTTPError(resp)
scrapelib.HTTPError: 404 while retrieving https://www.rmwb.ca/en/mayor-council-and-administration/councillors.aspx
|
|
C
|
ca_bc
|
2025-11-17 04:30:06
|
2025-11-17 04:30:07
|
|
|
C
|
ca_bc_abbotsford
|
2025-11-17 04:15:46
|
2025-11-17 04:15:46
|
|
|
C
|
ca_bc_burnaby
|
2025-11-17 04:17:22
|
2025-11-17 04:17:22
|
|
|
C
|
ca_bc_coquitlam
|
2025-11-17 04:26:23
|
2025-11-17 04:26:24
|
|
|
C
|
ca_bc_kelowna
|
2025-11-17 04:24:57
|
2025-11-17 04:24:58
|
|
|
C
|
ca_bc_langley
|
2025-11-17 04:33:18
|
2025-11-17 04:33:18
|
|
|
C
|
ca_bc_langley_city
|
2025-11-17 04:39:46
|
2025-11-17 04:39:46
|
|
|
C
|
ca_bc_new_westminster
|
2025-11-17 04:39:11
|
2025-11-17 04:39:11
|
|
|
C
|
ca_bc_richmond
|
2025-11-17 04:39:03
|
2025-11-17 04:39:03
|
|
|
C
|
ca_bc_saanich
|
2025-11-17 04:11:56
|
2025-11-17 04:11:56
|
|
|
C
|
ca_bc_surrey
|
2025-11-17 04:25:22
|
2025-11-17 04:25:22
|
|
|
C
|
ca_bc_vancouver
|
2025-11-17 04:07:31
|
2025-11-17 04:07:31
|
|
|
C
|
ca_bc_victoria
|
2025-11-17 04:16:25
|
2025-11-17 04:16:26
|
|
D>
04:27:22 ERROR ca_candidates.people:
04:27:25 ERROR ca_candidates.people:
04:27:25 ERROR ca_candidates.people:
04:27:25 ERROR ca_candidates.people:
04:27:25 ERROR ca_candidates.people:
04:27:25 ERROR ca_candidates.people:
04:27:27 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/2 (https://www.greenparty.ca/en/candidates/page/2)
04:27:28 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/3 (https://www.greenparty.ca/en/candidates/page/3)
04:27:29 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/4 (https://www.greenparty.ca/en/candidates/page/4)
04:27:30 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/5 (https://www.greenparty.ca/en/candidates/page/5)
04:27:31 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/6 (https://www.greenparty.ca/en/candidates/page/6)
04:27:32 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/7 (https://www.greenparty.ca/en/candidates/page/7)
04:27:33 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/8 (https://www.greenparty.ca/en/candidates/page/8)
04:27:34 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/9 (https://www.greenparty.ca/en/candidates/page/9)
04:27:35 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/10 (https://www.greenparty.ca/en/candidates/page/10)
04:27:36 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/11 (https://www.greenparty.ca/en/candidates/page/11)
04:27:37 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/12 (https://www.greenparty.ca/en/candidates/page/12)
04:27:38 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/13 (https://www.greenparty.ca/en/candidates/page/13)
04:27:39 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/14 (https://www.greenparty.ca/en/candidates/page/14)
04:27:40 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/15 (https://www.greenparty.ca/en/candidates/page/15)
04:27:41 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/16 (https://www.greenparty.ca/en/candidates/page/16)
04:27:42 WARNING ca_candidates.people: 404 while retrieving https://www.greenparty.ca/en/candidates/page/17 (https://www.greenparty.ca/en/candidates/page/17)
|
ca_candidates
|
2025-04-29 04:39:17
|
2025-11-17 04:27:44
|
scrapelib.HTTPError: 404 while retrieving https://www.conservative.ca/candidates
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_candidates/people.py", line 162, in scrape
for p in getattr(self, f"scrape_{party}")():
File "/app/scrapers/ca_candidates/people.py", line 425, in scrape_conservative
page = self.lxmlize(start_url)
File "/app/scrapers/utils.py", line 217, in lxmlize
response = self.get(url, cookies=cookies, verify=verify)
File "/app/scrapers/utils.py", line 198, in get
return super().get(*args, verify=kwargs.pop("verify", SSL_VERIFY), **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/scrapelib/__init__.py", line 619, in request
raise HTTPError(resp)
scrapelib.HTTPError: 404 while retrieving https://www.conservative.ca/candidates
|
|
C
|
ca_mb
|
2025-11-17 04:22:26
|
2025-11-17 04:22:27
|
|
|
D>
|
ca_mb_winnipeg
|
2025-10-30 04:29:23
|
2025-11-17 04:09:53
|
AssertionError: No councillors found on website
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_mb_winnipeg/people.py", line 18, in scrape
assert len(councillors), "No councillors found on website"
AssertionError: No councillors found on website
|
|
C
|
ca_nb
|
2025-11-17 04:09:31
|
2025-11-17 04:09:32
|
|
|
C
|
ca_nb_fredericton
|
2025-11-17 04:32:01
|
2025-11-17 04:32:01
|
|
|
C
|
ca_nb_moncton
|
2025-11-17 04:34:38
|
2025-11-17 04:34:38
|
|
|
C
|
ca_nb_saint_john
|
2025-11-17 04:40:32
|
2025-11-17 04:40:33
|
|
D>
04:28:35 WARNING pupa: validation of Membership e1928dbc-c36d-11f0-8458-7ace6148a9c4 failed: 2 validation errors:
Value ' ' for field '' does not match regular expression '\A([A-Za-z0-9._\'+-]+)@(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,}\Z'
Value '<em><' for field '' does not match regular expression '\A1 \d{3} \d{3}-\d{4}(?: x\d+)?\Z'
|
ca_nl
|
2025-09-15 04:33:31
|
2025-11-17 04:28:35
|
Value '<em><' for field '' does not match regular expression '\A1 \d{3} \d{3}-\d{4}(?: x\d+)?\Z'
Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 175, in validate
validator.validate(self.as_dict(), schema)
File "/app/.heroku/python/lib/python3.10/site-packages/validictory/validator.py", line 616, in validate
raise MultipleValidationError(self._errors)
validictory.validator.MultipleValidationError: 2 validation errors:
Value ' ' for field '' does not match regular expression '\A([A-Za-z0-9._\'+-]+)@(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,}\Z'
Value '<em><' for field '' does not match regular expression '\A1 \d{3} \d{3}-\d{4}(?: x\d+)?\Z'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 104, in do_scrape
self.save_object(obj)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 93, in save_object
self.save_object(obj)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 89, in save_object
raise ve
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 85, in save_object
obj.validate()
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 177, in validate
raise ScrapeValueError('validation of {} {} failed: {}'.format(
pupa.exceptions.ScrapeValueError: validation of Membership e1928dbc-c36d-11f0-8458-7ace6148a9c4 failed: 2 validation errors:
Value ' ' for field '' does not match regular expression '\A([A-Za-z0-9._\'+-]+)@(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,}\Z'
Value '<em><' for field '' does not match regular expression '\A1 \d{3} \d{3}-\d{4}(?: x\d+)?\Z'
|
|
C
|
ca_nl_st_john_s
|
2025-11-17 04:29:51
|
2025-11-17 04:29:51
|
|
|
C
|
ca_ns
|
2025-11-17 04:21:02
|
2025-11-17 04:21:03
|
|
|
C
|
ca_ns_cape_breton
|
2025-11-17 04:07:15
|
2025-11-17 04:07:15
|
|
|
C
|
ca_ns_halifax
|
2025-11-17 04:29:23
|
2025-11-17 04:29:24
|
|
|
C
|
ca_nt
|
2025-11-17 04:06:47
|
2025-11-17 04:06:48
|
|
D>
04:40:11 WARNING pupa: validation of Membership 80a421c6-c36f-11f0-8458-7ace6148a9c4 failed: 1 validation errors:
Value '266-' for field '' does not match regular expression '\A1 \d{3} \d{3}-\d{4}(?: x\d+)?\Z'
|
ca_nu
|
2025-10-27 04:20:12
|
2025-11-17 04:40:11
|
Value '266-' for field '' does not match regular expression '\A1 \d{3} \d{3}-\d{4}(?: x\d+)?\Z'
Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 175, in validate
validator.validate(self.as_dict(), schema)
File "/app/.heroku/python/lib/python3.10/site-packages/validictory/validator.py", line 616, in validate
raise MultipleValidationError(self._errors)
validictory.validator.MultipleValidationError: 1 validation errors:
Value '266-' for field '' does not match regular expression '\A1 \d{3} \d{3}-\d{4}(?: x\d+)?\Z'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 104, in do_scrape
self.save_object(obj)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 93, in save_object
self.save_object(obj)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 89, in save_object
raise ve
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 85, in save_object
obj.validate()
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 177, in validate
raise ScrapeValueError('validation of {} {} failed: {}'.format(
pupa.exceptions.ScrapeValueError: validation of Membership 80a421c6-c36f-11f0-8458-7ace6148a9c4 failed: 1 validation errors:
Value '266-' for field '' does not match regular expression '\A1 \d{3} \d{3}-\d{4}(?: x\d+)?\Z'
|
|
C
|
ca_on
|
2025-11-17 04:06:13
|
2025-11-17 04:06:14
|
|
|
C
|
ca_on_ajax
|
2025-11-17 04:14:56
|
2025-11-17 04:14:57
|
|
|
C
|
ca_on_belleville
|
2025-11-17 04:02:14
|
2025-11-17 04:02:14
|
|
|
C
|
ca_on_brampton
|
2025-11-17 04:24:32
|
2025-11-17 04:24:32
|
|
|
C
|
ca_on_brantford
|
2025-11-17 04:19:34
|
2025-11-17 04:19:34
|
|
|
C
|
ca_on_burlington
|
2025-11-17 04:01:19
|
2025-11-17 04:01:20
|
|
|
C
|
ca_on_caledon
|
2025-11-17 04:33:48
|
2025-11-17 04:33:49
|
|
|
C
|
ca_on_cambridge
|
2025-11-17 04:28:01
|
2025-11-17 04:28:01
|
|
|
C
|
ca_on_chatham_kent
|
2025-11-17 04:23:20
|
2025-11-17 04:23:20
|
|
|
C
|
ca_on_clarington
|
2025-11-17 04:26:45
|
2025-11-17 04:26:45
|
|
|
C
|
ca_on_fort_erie
|
2025-11-17 04:27:53
|
2025-11-17 04:27:53
|
|
|
C
|
ca_on_georgina
|
2025-11-17 04:34:56
|
2025-11-17 04:34:56
|
|
|
C
|
ca_on_greater_sudbury
|
2025-11-17 04:35:17
|
2025-11-17 04:35:17
|
|
|
C
|
ca_on_grimsby
|
2025-11-17 04:28:21
|
2025-11-17 04:28:21
|
|
|
C
|
ca_on_guelph
|
2025-11-17 04:38:24
|
2025-11-17 04:38:24
|
|
|
C
|
ca_on_haldimand_county
|
2025-11-17 04:32:08
|
2025-11-17 04:32:09
|
|
|
D>
|
ca_on_hamilton
|
2025-07-02 04:38:31
|
2025-11-17 04:34:06
|
Committee & Board membership
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_on_hamilton/people.py", line 17, in scrape
yield self.councillor_data(url)
File "/app/scrapers/ca_on_hamilton/people.py", line 27, in councillor_data
phone = self.get_phone(info_node, area_codes=[289, 365, 905])
File "/app/scrapers/utils.py", line 186, in get_phone
raise Exception(f"No phone pattern in {node.text_content()}")
Exception: No phone pattern in
Councillor
Rob Cooper
Email: [email protected]Hamilton City Hall2nd floor - 71 Main Street WestHamilton, Ontario L8P 4Y5
Committee & Board membership
|
|
C
|
ca_on_huron
|
2025-11-17 04:26:04
|
2025-11-17 04:26:04
|
|
|
D>
|
ca_on_kawartha_lakes
|
2025-09-25 04:24:22
|
2025-11-17 04:28:28
|
scrapelib.HTTPError: 404 while retrieving https://www.kawarthalakes.ca/en/municipal-services/contact-a-council-member.aspx
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_on_kawartha_lakes/people.py", line 11, in scrape
page = self.lxmlize(COUNCIL_PAGE)
File "/app/scrapers/utils.py", line 217, in lxmlize
response = self.get(url, cookies=cookies, verify=verify)
File "/app/scrapers/utils.py", line 198, in get
return super().get(*args, verify=kwargs.pop("verify", SSL_VERIFY), **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/scrapelib/__init__.py", line 619, in request
raise HTTPError(resp)
scrapelib.HTTPError: 404 while retrieving https://www.kawarthalakes.ca/en/municipal-services/contact-a-council-member.aspx
|
|
C
|
ca_on_king
|
2025-11-17 04:32:27
|
2025-11-17 04:32:27
|
|
|
C
|
ca_on_kingston
|
2025-11-17 04:39:50
|
2025-11-17 04:39:50
|
|
|
C
|
ca_on_kitchener
|
2025-11-17 04:38:46
|
2025-11-17 04:38:46
|
|
|
C
|
ca_on_lambton
|
2025-11-17 04:28:57
|
2025-11-17 04:28:57
|
|
|
D>
|
ca_on_lasalle
|
2025-10-29 04:01:29
|
2025-11-17 04:12:21
|
IndexError: list index out of range
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_on_lasalle/people.py", line 24, in scrape
image = councillor.xpath(".//img/@src")[0]
IndexError: list index out of range
|
|
C
|
ca_on_lincoln
|
2025-11-17 04:32:38
|
2025-11-17 04:32:38
|
|
|
C
|
ca_on_london
|
2025-11-17 04:34:21
|
2025-11-17 04:34:21
|
|
|
D>
|
ca_on_markham
|
2025-07-04 04:13:21
|
2025-11-17 04:29:33
|
IndexError: list index out of range
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 101, in do_scrape
for iterobj in obj:
File "/app/scrapers/ca_on_markham/people.py", line 97, in scrape_mayor
p.image = page.xpath('.//div[@class="align-right media--image"]/div/img/@src')[0]
IndexError: list index out of range
|
|
C
|
ca_on_milton
|
2025-11-17 04:35:07
|
2025-11-17 04:35:07
|
|
|
C
|
ca_on_mississauga
|
2025-11-17 04:16:13
|
2025-11-17 04:16:13
|
|
|
C
|
ca_on_newmarket
|
2025-11-17 04:07:45
|
2025-11-17 04:07:45
|
|
|
C
|
ca_on_niagara
|
2025-11-17 04:34:33
|
2025-11-17 04:34:33
|
|
|
C
|
ca_on_niagara_on_the_lake
|
2025-11-17 04:16:40
|
2025-11-17 04:16:40
|
|
|
D>
|
ca_on_north_dumfries
|
2025-06-19 04:19:39
|
2025-11-17 04:28:42
|
scrapelib.HTTPError: 404 while retrieving https://www.northdumfries.ca/en/township-services/mayor-and-council.aspx
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_on_north_dumfries/people.py", line 11, in scrape
page = self.lxmlize(COUNCIL_PAGE)
File "/app/scrapers/utils.py", line 217, in lxmlize
response = self.get(url, cookies=cookies, verify=verify)
File "/app/scrapers/utils.py", line 198, in get
return super().get(*args, verify=kwargs.pop("verify", SSL_VERIFY), **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/scrapelib/__init__.py", line 619, in request
raise HTTPError(resp)
scrapelib.HTTPError: 404 while retrieving https://www.northdumfries.ca/en/township-services/mayor-and-council.aspx
|
|
C
|
ca_on_oakville
|
2025-11-17 04:18:59
|
2025-11-17 04:18:59
|
|
|
D>
|
ca_on_oshawa
|
2025-09-18 04:52:15
|
2025-11-17 04:36:28
|
scrapelib.HTTPError: 404 while retrieving https://www.oshawa.ca/en/city-hall/council-members.aspx
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_on_oshawa/people.py", line 12, in scrape
page = self.lxmlize(COUNCIL_PAGE)
File "/app/scrapers/utils.py", line 217, in lxmlize
response = self.get(url, cookies=cookies, verify=verify)
File "/app/scrapers/utils.py", line 198, in get
return super().get(*args, verify=kwargs.pop("verify", SSL_VERIFY), **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/scrapelib/__init__.py", line 619, in request
raise HTTPError(resp)
scrapelib.HTTPError: 404 while retrieving https://www.oshawa.ca/en/city-hall/council-members.aspx
|
D>
04:02:27 WARNING scrapelib: sleeping for 10 seconds before retry
04:02:37 WARNING scrapelib: sleeping for 20 seconds before retry
04:02:57 WARNING scrapelib: sleeping for 40 seconds before retry
|
ca_on_ottawa
|
2025-06-26 04:31:47
|
2025-11-17 04:03:37
|
scrapelib.HTTPError: 400 while retrieving https://www.arcgis.com/sharing/rest/content/items/a5e9dc2425274bb796d3ded47b0d7b00…
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/utils.py", line 386, in scrape
binary = BytesIO(self.get(self.csv_url).content)
File "/app/scrapers/utils.py", line 198, in get
return super().get(*args, verify=kwargs.pop("verify", SSL_VERIFY), **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/scrapelib/__init__.py", line 619, in request
raise HTTPError(resp)
scrapelib.HTTPError: 400 while retrieving https://www.arcgis.com/sharing/rest/content/items/a5e9dc2425274bb796d3ded47b0d7b00/data
|
|
C
|
ca_on_peel
|
2025-11-17 04:15:15
|
2025-11-17 04:15:16
|
|
|
C
|
ca_on_pickering
|
2025-11-17 04:23:47
|
2025-11-17 04:23:47
|
|
|
C
|
ca_on_richmond_hill
|
2025-11-17 04:19:22
|
2025-11-17 04:19:22
|
|
|
D>
|
ca_on_sault_ste_marie
|
2025-09-24 04:33:36
|
2025-11-17 04:11:39
|
AssertionError: No councillors found
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_on_sault_ste_marie/people.py", line 16, in scrape
assert len(councillors), "No councillors found"
AssertionError: No councillors found
|
D>
04:13:33 WARNING scrapelib: sleeping for 10 seconds before retry
04:13:43 WARNING scrapelib: sleeping for 20 seconds before retry
04:14:04 WARNING scrapelib: sleeping for 40 seconds before retry
|
ca_on_st_catharines
|
2025-10-09 04:06:20
|
2025-11-17 04:14:44
|
scrapelib.HTTPError: 502 while retrieving https://niagaraopendata.ca/dataset/ccb9c7f1-d3b0-4049-9c08-e4f7b048722c/resource/1…
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/utils.py", line 408, in scrape
reader = self.csv_reader(
File "/app/scrapers/utils.py", line 251, in csv_reader
response = self.get(url, **kwargs)
File "/app/scrapers/utils.py", line 198, in get
return super().get(*args, verify=kwargs.pop("verify", SSL_VERIFY), **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/scrapelib/__init__.py", line 619, in request
raise HTTPError(resp)
scrapelib.HTTPError: 502 while retrieving https://niagaraopendata.ca/dataset/ccb9c7f1-d3b0-4049-9c08-e4f7b048722c/resource/128a39f0-8234-4708-b69b-9c73f7a55475/download/stcathcounsilors.csv
|
|
C
|
ca_on_thunder_bay
|
2025-11-17 04:33:02
|
2025-11-17 04:33:02
|
|
|
C
|
ca_on_toronto
|
2025-11-17 04:34:27
|
2025-11-17 04:34:28
|
|
|
C
|
ca_on_uxbridge
|
2025-11-17 04:24:45
|
2025-11-17 04:24:45
|
|
|
C
|
ca_on_vaughan
|
2025-11-17 04:31:30
|
2025-11-17 04:31:30
|
|
|
C
|
ca_on_waterloo
|
2025-11-17 04:01:56
|
2025-11-17 04:01:56
|
|
|
C
|
ca_on_waterloo_region
|
2025-11-17 04:25:53
|
2025-11-17 04:25:53
|
|
|
C
|
ca_on_welland
|
2025-11-17 04:18:42
|
2025-11-17 04:18:42
|
|
|
D>
|
ca_on_wellesley
|
2025-09-11 04:47:48
|
2025-11-17 04:38:29
|
scrapelib.HTTPError: 404 while retrieving https://www.wellesley.ca/council/councillors/?q=council/councillors
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_on_wellesley/people.py", line 15, in scrape
page = self.lxmlize(COUNCIL_PAGE)
File "/app/scrapers/utils.py", line 217, in lxmlize
response = self.get(url, cookies=cookies, verify=verify)
File "/app/scrapers/utils.py", line 198, in get
return super().get(*args, verify=kwargs.pop("verify", SSL_VERIFY), **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/scrapelib/__init__.py", line 619, in request
raise HTTPError(resp)
scrapelib.HTTPError: 404 while retrieving https://www.wellesley.ca/council/councillors/?q=council/councillors
|
|
D>
|
ca_on_whitby
|
2025-09-12 04:03:37
|
2025-11-17 04:40:20
|
scrapelib.HTTPError: 404 while retrieving https://www.whitby.ca/en/town-hall/mayor-and-council.aspx
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_on_whitby/people.py", line 10, in scrape
page = self.lxmlize(COUNCIL_PAGE)
File "/app/scrapers/utils.py", line 217, in lxmlize
response = self.get(url, cookies=cookies, verify=verify)
File "/app/scrapers/utils.py", line 198, in get
return super().get(*args, verify=kwargs.pop("verify", SSL_VERIFY), **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/scrapelib/__init__.py", line 619, in request
raise HTTPError(resp)
scrapelib.HTTPError: 404 while retrieving https://www.whitby.ca/en/town-hall/mayor-and-council.aspx
|
|
C
|
ca_on_whitchurch_stouffville
|
2025-11-17 04:39:38
|
2025-11-17 04:39:38
|
|
|
D>
|
ca_on_wilmot
|
2025-09-30 04:25:16
|
2025-11-17 04:38:37
|
scrapelib.HTTPError: 404 while retrieving https://www.wilmot.ca/en/township-office/council.aspx
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_on_wilmot/people.py", line 9, in scrape
page = self.lxmlize(COUNCIL_PAGE)
File "/app/scrapers/utils.py", line 217, in lxmlize
response = self.get(url, cookies=cookies, verify=verify)
File "/app/scrapers/utils.py", line 198, in get
return super().get(*args, verify=kwargs.pop("verify", SSL_VERIFY), **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/scrapelib/__init__.py", line 619, in request
raise HTTPError(resp)
scrapelib.HTTPError: 404 while retrieving https://www.wilmot.ca/en/township-office/council.aspx
|
|
C
|
ca_on_windsor
|
2025-11-17 04:18:28
|
2025-11-17 04:18:28
|
|
|
C
|
ca_on_woolwich
|
2025-11-17 04:17:34
|
2025-11-17 04:17:35
|
|
|
D>
|
ca_pe
|
2025-11-14 04:34:41
|
2025-11-17 04:08:01
|
IndexError: list index out of range
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_pe/people.py", line 38, in scrape
p.image = details.xpath('//div[contains(@class, "member-portrait")]//img')[0].get("src")
IndexError: list index out of range
|
|
C
|
ca_pe_charlottetown
|
2025-11-17 04:15:32
|
2025-11-17 04:15:32
|
|
|
C
|
ca_pe_stratford
|
2025-11-17 04:35:10
|
2025-11-17 04:35:10
|
|
|
C
|
ca_pe_summerside
|
2025-11-17 04:30:18
|
2025-11-17 04:30:18
|
|
|
C
|
ca_qc
|
2025-11-17 04:49:29
|
2025-11-17 04:49:30
|
|
|
C
|
ca_qc_beaconsfield
|
2025-11-17 04:39:28
|
2025-11-17 04:39:28
|
|
|
D>
|
ca_qc_brossard
|
2025-09-25 04:11:31
|
2025-11-17 04:28:48
|
KeyError: 'district 1 - secteurs c-e-l'
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_qc_brossard/people.py", line 43, in scrape
district = secteurs_to_districts[secteur]
KeyError: 'district 1 - secteurs c-e-l'
|
|
C
|
ca_qc_cote_saint_luc
|
2025-11-17 04:19:45
|
2025-11-17 04:19:45
|
|
|
D>
|
ca_qc_dollard_des_ormeaux
|
2025-11-07 04:30:36
|
2025-11-17 04:28:08
|
Exception: No email node in b'<div class="elementor-widget-wrap elementor-element-populated">\n\t\t\t\t<div class="elementor…
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_qc_dollard_des_ormeaux/people.py", line 22, in scrape
email = self.get_email(councillor)
File "/app/scrapers/utils.py", line 140, in get_email
raise Exception(f"No email node in {etree.tostring(node)}")
Exception: No email node in b'<div class="elementor-widget-wrap elementor-element-populated">\n\t\t\t\t<div class="elementor-element elementor-element-d003c4e e-flex e-con-boxed e-con e-parent" data-id="d003c4e" data-element_type="container">\n\t\t\t\t\t<div class="e-con-inner">\n\t\t\t\t<div class="elementor-element elementor-element-58b8f28 elementor-position-top elementor-widget elementor-widget-image-box" data-id="58b8f28" data-element_type="widget" data-widget_type="image-box.default">\n\t\t\t\t<div class="elementor-widget-container">\n\t\t\t\t\t<div class="elementor-image-box-wrapper"><figure class="elementor-image-box-img"><img decoding="async" width="819" height="1024" data-src="https://ville.ddo.qc.ca/wp-content/uploads/2025/11/SJesion-1.jpg" class="attachment-full size-full wp-image-111737 lazyload" alt="" data-srcset="https://ville.ddo.qc.ca/wp-content/uploads/2025/11/SJesion-1.jpg 819w, https://ville.ddo.qc.ca/wp-content/smush-webp/2025/11/SJesion-1-240x300.jpg.webp 240w, https://ville.ddo.qc.ca/wp-content/smush-webp/2025/11/SJesion-1-768x960.jpg.webp 768w, https://ville.ddo.qc.ca/wp-content/smush-webp/2025/11/SJesion-1-120x150.jpg.webp 120w" data-sizes="(max-width: 819px) 100vw, 819px" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==" style="--smush-placeholder-width: 819px; --smush-placeholder-aspect-ratio: 819/1024;"/></figure><div class="elementor-image-box-content"><h3 class="elementor-image-box-title">District 3</h3></div></div>\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="elementor-element elementor-element-590953a elementor-widget elementor-widget-heading" data-id="590953a" data-element_type="widget" data-widget_type="heading.default">\n\t\t\t\t<div class="elementor-widget-container">\n\t\t\t\t\t<h4 class="elementor-heading-title elementor-size-default">Jesion, Sandy</h4>\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="elementor-element elementor-element-5648f2a elementor-align-center elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="5648f2a" data-element_type="widget" data-widget_type="icon-list.default">\n\t\t\t\t<div class="elementor-widget-container">\n\t\t\t\t\t\t\t<ul class="elementor-icon-list-items">\n\t\t\t\t\t\t\t<li class="elementor-icon-list-item">\n\t\t\t\t\t\t\t\t\t\t\t<span class="elementor-icon-list-icon">\n\t\t\t\t\t\t\t<i aria-hidden="true" class="fas fa-envelope"/>\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span class="elementor-icon-list-text">To come</span>\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t'
|
|
D>
|
ca_qc_dorval
|
2025-11-03 04:51:01
|
2025-11-17 04:32:17
|
Exception: No email node in b'<div class="c-rubric-card || js-accordion" id="accordion-district-3">\n <div class="c-rubri…
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_qc_dorval/people.py", line 28, in scrape
email = self.get_email(councillor)
File "/app/scrapers/utils.py", line 140, in get_email
raise Exception(f"No email node in {etree.tostring(node)}")
Exception: No email node in b'<div class="c-rubric-card || js-accordion" id="accordion-district-3">\n <div class="c-rubric-card__header || js-accordion-toggle" tabindex="0" role="button" aria-expanded="false" aria-controls="accordion-content-district-3">\n <div class="c-rubric-card__plus-container">\n <div class="c-rubric-card__plus"/>\n </div>\n <div class="c-rubric-card__text">\n <span class="c-rubric-card__surtitle">Councillor – District 3</span>\n <h2 class="c-rubric-card__title">Linda Jun Lu</h2>\n </div>\n <picture class="c-rubric-card__picture">\n <img class="c-rubric-card__img lazy" src="https://www.ville.dorval.qc.ca/storage/app/resources/resize/28_18_0_0_crop/img_382e424a87b61364ee662c38305cb3ee.png" data-src="https://www.ville.dorval.qc.ca/storage/app/resources/resize/280_180_0_0_crop/img_f4d0fd7ee4c9c0bcd29f25fec254accc.png" alt="" style="--position: center;"/>\n </picture>\n </div>\n <div class="c-rubric-card__content || js-accordion-content" id="accordion-content-district-3" aria-hidden="true">\n <div class="c-rubric-card__transition">\n <div class="c-rubric-card__map-button-container">\n <a href="https://www.ville.dorval.qc.ca/en/interactive-map/electoral-districts/all-the-districts/district-3" class="c-rubric-card__map-button">\n <span>See on map</span>\n <svg role="img"><use href="https://www.ville.dorval.qc.ca/themes/dorval/assets/medias/images/symbols/uiStroke.svg#ico-lieu"/></svg>\n </a>\n </div>\n <div class="c-rubric-card__cms-content">\n <div class="s-cms-content s-cms-content--rubric">\n <p><strong>Email:</strong> </p><p class="buttons buttons--first buttons--last"><a class="primary-button" href="https://www.ville.dorval.qc.ca/en/the-city/democratic-life/electoral-districts#electoral-district-no-3"><span class="text-container">Learn more about District 3</span></a></p>\n </div>\n </div>\n <div class="c-rubric-card__button-share-rubric">\n <button class="c-button-share-rubric || js-open-overlay-share" type="button" data-rubric="district-3" data-share="this page" aria-controls="share" aria-haspopup="true">\n <span class="c-button-share-rubric__text">Share</span>\n <svg class="c-button-share-rubric__svg" role="img">\n <use href="https://www.ville.dorval.qc.ca/themes/dorval/assets/medias/images/symbols/uiFill.svg#ico-partager" xlink:href="https://www.ville.dorval.qc.ca/themes/dorval/assets/medias/images/symbols/uiFill.svg#ico-partager"/>\n </svg>\n </button>\n </div>\n <a class="c-rubric-card__screen-reader-anchor-button || js-accordion-toggle" href="https://www.ville.dorval.qc.ca/en/the-city/democratic-life/municipal-council#accordion-district-3" aria-expanded="false" aria-controls="accordion-content-district-3">Close</a>\n </div>\n </div>\n</div> '
|
|
C
|
ca_qc_gatineau
|
2025-11-17 04:38:14
|
2025-11-17 04:38:15
|
|
|
D>
|
ca_qc_kirkland
|
2025-11-10 04:49:56
|
2025-11-17 04:23:33
|
IndexError: list index out of range
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_qc_kirkland/people.py", line 24, in scrape
name = councillor.xpath(".//strong/text()")[0]
IndexError: list index out of range
|
|
C
|
ca_qc_laval
|
2025-11-17 04:24:13
|
2025-11-17 04:24:13
|
|
|
C
|
ca_qc_levis
|
2025-11-17 04:08:22
|
2025-11-17 04:08:22
|
|
|
D>
|
ca_qc_longueuil
|
2025-11-03 04:03:52
|
2025-11-17 04:31:38
|
IndexError: list index out of range
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_qc_longueuil/people.py", line 21, in scrape
district = tr.xpath('.//p[contains(./strong, "District")]/a/text()')[0]
IndexError: list index out of range
|
|
C
|
ca_qc_mercier
|
2025-11-17 04:22:43
|
2025-11-17 04:22:43
|
|
|
C
|
ca_qc_montreal
|
2025-11-17 04:34:48
|
2025-11-17 04:34:49
|
|
|
C
|
ca_qc_montreal_est
|
2025-11-17 04:30:29
|
2025-11-17 04:30:29
|
|
|
C
|
ca_qc_pointe_claire
|
2025-11-17 04:34:17
|
2025-11-17 04:34:17
|
|
|
D>
|
ca_qc_quebec
|
2025-11-14 04:11:02
|
2025-11-17 04:42:47
|
pupa.exceptions.UnresolvedIdError: cannot resolve pseudo id to Post: ~{"label": "Vanier\u2014Duberger", "organization__class…
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 307, in do_handle
report['import'] = self.do_import(juris, args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 211, in do_import
report.update(membership_importer.import_directory(datadir))
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/importers/base.py", line 190, in import_directory
return self.import_data(json_stream())
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/importers/base.py", line 227, in import_data
obj_id, what = self.import_item(data)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/importers/base.py", line 247, in import_item
data = self.prepare_for_db(data)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/importers/memberships.py", line 50, in prepare_for_db
data['post_id'] = self.post_importer.resolve_json_id(data['post_id'])
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/importers/base.py", line 165, in resolve_json_id
raise UnresolvedIdError(errmsg)
pupa.exceptions.UnresolvedIdError: cannot resolve pseudo id to Post: ~{"label": "Vanier\u2014Duberger", "organization__classification": "legislature", "role": "Conseiller"}
|
|
D>
|
ca_qc_saguenay
|
2025-08-27 04:01:52
|
2025-11-17 04:40:47
|
scrapelib.HTTPError: 404 while retrieving https://ville.saguenay.ca/la-ville-et-vie-democratique/cabinet
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_qc_saguenay/people.py", line 14, in scrape
contact_page = self.lxmlize(CONTACT_PAGE)
File "/app/scrapers/utils.py", line 217, in lxmlize
response = self.get(url, cookies=cookies, verify=verify)
File "/app/scrapers/utils.py", line 198, in get
return super().get(*args, verify=kwargs.pop("verify", SSL_VERIFY), **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/scrapelib/__init__.py", line 619, in request
raise HTTPError(resp)
scrapelib.HTTPError: 404 while retrieving https://ville.saguenay.ca/la-ville-et-vie-democratique/cabinet
|
|
C
|
ca_qc_sainte_anne_de_bellevue
|
2025-11-17 04:23:59
|
2025-11-17 04:23:59
|
|
|
D>
|
ca_qc_saint_jean_sur_richelieu
|
2025-11-11 04:06:55
|
2025-11-17 04:12:08
|
AssertionError: No councillors found
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_qc_saint_jean_sur_richelieu/people.py", line 16, in scrape
assert len(councillors), "No councillors found"
AssertionError: No councillors found
|
|
D>
|
ca_qc_saint_jerome
|
2025-11-10 04:36:26
|
2025-11-17 04:33:24
|
Exception: No email node in b'<div class="inner_member_2">\n <div class="portrait_single">\n <img width="819" heig…
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_qc_saint_jerome/people.py", line 34, in scrape
p.add_contact("email", self.get_email(councillor))
File "/app/scrapers/utils.py", line 140, in get_email
raise Exception(f"No email node in {etree.tostring(node)}")
Exception: No email node in b'<div class="inner_member_2">\n <div class="portrait_single">\n <img width="819" height="1024" src="data:image/svg+xml,%3Csvg%20xmlns=\'http://www.w3.org/2000/svg\'%20viewBox=\'0%200%20819%201024\'%3E%3C/svg%3E" class="single_pic wp-post-image" alt="" decoding="async" data-lazy-srcset="https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-819x1024.jpg 819w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-240x300.jpg 240w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-768x960.jpg 768w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-1229x1536.jpg 1229w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-500x625.jpg 500w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-800x1000.jpg 800w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-1280x1600.jpg 1280w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir.jpg 1536w" data-lazy-sizes="(max-width: 819px) 100vw, 819px" data-lazy-src="https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-819x1024.jpg"/><noscript><img width="819" height="1024" src="https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-819x1024.jpg" class="single_pic wp-post-image" alt="" decoding="async" srcset="https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-819x1024.jpg 819w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-240x300.jpg 240w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-768x960.jpg 768w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-1229x1536.jpg 1229w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-500x625.jpg 500w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-800x1000.jpg 800w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir-1280x1600.jpg 1280w, https://www.vsj.ca/wp-content/uploads/2021/11/photo_a_venir.jpg 1536w" sizes="(max-width: 819px) 100vw, 819px"/></noscript> </div>\n <div class="info_member">\n <div class="district">\n DISTRICT NUMÉRO 11 </div>\n \n <h2 class="entry-title">À venir</h2>\n <div class="role">\n Conseiller municipal </div>\n \n </div>\n</div>\n\n'
|
|
D>
|
ca_qc_senneville
|
2025-10-02 04:03:34
|
2025-11-17 04:16:54
|
pupa.exceptions.UnresolvedIdError: cannot resolve pseudo id to Post: ~{"label": "District 6", "organization__classification"…
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 307, in do_handle
report['import'] = self.do_import(juris, args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 211, in do_import
report.update(membership_importer.import_directory(datadir))
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/importers/base.py", line 190, in import_directory
return self.import_data(json_stream())
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/importers/base.py", line 227, in import_data
obj_id, what = self.import_item(data)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/importers/base.py", line 247, in import_item
data = self.prepare_for_db(data)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/importers/memberships.py", line 50, in prepare_for_db
data['post_id'] = self.post_importer.resolve_json_id(data['post_id'])
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/importers/base.py", line 165, in resolve_json_id
raise UnresolvedIdError(errmsg)
pupa.exceptions.UnresolvedIdError: cannot resolve pseudo id to Post: ~{"label": "District 6", "organization__classification": "legislature", "role": "Conseill\u00e8re"}
|
|
C
|
ca_qc_sherbrooke
|
2025-11-17 04:18:04
|
2025-11-17 04:18:04
|
|
D>
04:36:37 WARNING scrapelib: sleeping for 10 seconds before retry
04:36:47 WARNING scrapelib: sleeping for 20 seconds before retry
04:37:07 WARNING scrapelib: sleeping for 40 seconds before retry
|
ca_qc_terrebonne
|
|
2025-11-17 04:37:47
|
scrapelib.HTTPError: 403 while retrieving https://terrebonne.ca/membres-du-conseil-municipal/
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_qc_terrebonne/people.py", line 9, in scrape
page = self.lxmlize(COUNCIL_PAGE, user_agent=CUSTOM_USER_AGENT)
File "/app/scrapers/utils.py", line 217, in lxmlize
response = self.get(url, cookies=cookies, verify=verify)
File "/app/scrapers/utils.py", line 198, in get
return super().get(*args, verify=kwargs.pop("verify", SSL_VERIFY), **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/app/.heroku/python/lib/python3.10/site-packages/scrapelib/__init__.py", line 619, in request
raise HTTPError(resp)
scrapelib.HTTPError: 403 while retrieving https://terrebonne.ca/membres-du-conseil-municipal/
|
|
D>
|
ca_qc_trois_rivieres
|
2025-11-03 04:22:51
|
2025-11-17 04:42:56
|
AssertionError: No councillors found
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_qc_trois_rivieres/people.py", line 15, in scrape
assert len(members), "No councillors found"
AssertionError: No councillors found
|
|
C
|
ca_qc_westmount
|
2025-11-17 04:12:47
|
2025-11-17 04:12:47
|
|
|
C
|
ca_sk
|
2025-11-17 04:11:22
|
2025-11-17 04:11:22
|
|
|
C
|
ca_sk_regina
|
2025-11-17 04:35:44
|
2025-11-17 04:35:44
|
|
|
C
|
ca_sk_saskatoon
|
2025-11-17 04:36:21
|
2025-11-17 04:36:21
|
|
|
D>
|
ca_yt
|
|
2025-11-17 04:34:11
|
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://yukonassembly.ca/mlas
Traceback (most recent call last):
File "/app/reports/utils.py", line 73, in scrape_people
report.report = subcommand.handle(args, other)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 260, in handle
return self.do_handle(args, other, juris)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 305, in do_handle
report['scrape'] = self.do_scrape(juris, args, scrapers)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/cli/commands/update.py", line 173, in do_scrape
report[scraper_name] = scraper.do_scrape(**scrape_args)
File "/app/.heroku/python/lib/python3.10/site-packages/pupa/scrape/base.py", line 99, in do_scrape
for obj in self.scrape(**kwargs) or []:
File "/app/scrapers/ca_yt/people.py", line 11, in scrape
page = self.cloudscrape(COUNCIL_PAGE)
File "/app/scrapers/utils.py", line 205, in cloudscrape
response.raise_for_status()
File "/app/.heroku/python/lib/python3.10/site-packages/requests/models.py", line 1026, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://yukonassembly.ca/mlas
|