From 3352066a2cede772c4771ce9754f52ba16e0a317 Mon Sep 17 00:00:00 2001 From: Donal O'Shea Date: Thu, 9 Jul 2020 14:14:57 +0100 Subject: [PATCH 01/13] First commit for chicago ohare noise --- city_scrapers/spiders/chi_ohare_noise.py | 79 +++ tests/files/chi_ohare_noise.html | 774 +++++++++++++++++++++++ tests/test_chi_ohare_noise.py | 86 +++ 3 files changed, 939 insertions(+) create mode 100644 city_scrapers/spiders/chi_ohare_noise.py create mode 100644 tests/files/chi_ohare_noise.html create mode 100644 tests/test_chi_ohare_noise.py diff --git a/city_scrapers/spiders/chi_ohare_noise.py b/city_scrapers/spiders/chi_ohare_noise.py new file mode 100644 index 000000000..3558199b7 --- /dev/null +++ b/city_scrapers/spiders/chi_ohare_noise.py @@ -0,0 +1,79 @@ +from city_scrapers_core.constants import NOT_CLASSIFIED +from city_scrapers_core.items import Meeting +from city_scrapers_core.spiders import CityScrapersSpider + + +class ChiOhareNoiseSpider(CityScrapersSpider): + name = "chi_ohare_noise" + agency = "Chicago O'Hare Noise Compatibility Commission" + timezone = "America/Chicago" + start_urls = ["https://www.oharenoise.org/about-oncc/agendas-and-minutes"] + + def parse(self, response): + """ + `parse` should always `yield` Meeting items. + + Change the `_parse_title`, `_parse_start`, etc methods to fit your scraping + needs. + """ + for item in response.css(".meetings"): + meeting = Meeting( + title=self._parse_title(item), + description=self._parse_description(item), + classification=self._parse_classification(item), + start=self._parse_start(item), + end=self._parse_end(item), + all_day=self._parse_all_day(item), + time_notes=self._parse_time_notes(item), + location=self._parse_location(item), + links=self._parse_links(item), + source=self._parse_source(response), + ) + + meeting["status"] = self._get_status(meeting) + meeting["id"] = self._get_id(meeting) + + yield meeting + + def _parse_title(self, item): + """Parse or generate meeting title.""" + return "" + + def _parse_description(self, item): + """Parse or generate meeting description.""" + return "" + + def _parse_classification(self, item): + """Parse or generate classification from allowed options.""" + return NOT_CLASSIFIED + + def _parse_start(self, item): + """Parse start datetime as a naive datetime object.""" + return None + + def _parse_end(self, item): + """Parse end datetime as a naive datetime object. Added by pipeline if None""" + return None + + def _parse_time_notes(self, item): + """Parse any additional notes on the timing of the meeting""" + return "" + + def _parse_all_day(self, item): + """Parse or generate all-day status. Defaults to False.""" + return False + + def _parse_location(self, item): + """Parse or generate location.""" + return { + "address": "", + "name": "", + } + + def _parse_links(self, item): + """Parse or generate links.""" + return [{"href": "", "title": ""}] + + def _parse_source(self, response): + """Parse or generate source.""" + return response.url diff --git a/tests/files/chi_ohare_noise.html b/tests/files/chi_ohare_noise.html new file mode 100644 index 000000000..c48ebbfa0 --- /dev/null +++ b/tests/files/chi_ohare_noise.html @@ -0,0 +1,774 @@ + + + + + + + + + + + + + + + + Agendas and Minutes Archive - O'Hare Noise Compatibility Commission + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+ + +
+ + + + +

+ Agendas and Minutes Archive

+ +
+ +
+
+ + +
+
+
+
+
    +
  • Meetings:
  • +
  • + +
  • +
  • +
  • + +
+
+ + + + + + + + + +
+ + +
+ +
+ +
+
+
+
+ +
+ +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + Meeting + Date +
  • Agenda
  • Minutes
+
+ + + Fly Quiet Committee + + June 23, 2020 + + +
+ +
+ + + ONCC General Meeting + + June 5, 2020 + + +
+ +
+ + + Executive Committee + + June 1, 2020 + + +
+ +
+ + + Fly Quiet Committee + + May 26, 2020 + + +
+ +
+ + + Technical Committee + + May 19, 2020 + + +
+ +
+ + + Ad Hoc Governance Committee + + May 19, 2020 + + +
+ +
+ + + Residential Sound Insulation Committee + + May 13, 2020 + + +
+ +
+ + + Ad-Hoc Nominating Committee + + May 12, 2020 + + +
+ +
+ + + Executive Committee + + April 27, 2020 + + +
+ +
+ + + Fly Quiet Committee + + April 21, 2020 + + +
+ +
+ + + Ad Hoc Governance Committee + + April 20, 2020 + + +
+ +
+ + + Technical Committee + + April 14, 2020 + + +
+ +
+ + + Executive Committee + + March 30, 2020 + + +
+ +
+ + + Fly Quiet Committee + + February 25, 2020 + + +
+ +
+ + + Ad Hoc Governance Committee + + February 18, 2020 + + +
+ +
+ + + ONCC General Meeting + + February 14, 2020 + + +
+ +
+ + + Executive Committee + + February 10, 2020 + + +
+ +
+ + + Residential Sound Insulation Committee + + January 29, 2020 + + +
+ +
+ + + Fly Quiet Committee + + January 28, 2020 + + +
+ +
+ + + Ad Hoc Governance Committee + + January 16, 2020 + + +
+ +
+
+ + +
+ +
+ + +
+ + +
+ + + +
+ +
+ + + +
+ + + +
+
+ \ No newline at end of file diff --git a/tests/test_chi_ohare_noise.py b/tests/test_chi_ohare_noise.py new file mode 100644 index 000000000..7c86b774b --- /dev/null +++ b/tests/test_chi_ohare_noise.py @@ -0,0 +1,86 @@ +from datetime import datetime +from os.path import dirname, join + +import pytest +from city_scrapers_core.constants import NOT_CLASSIFIED +from city_scrapers_core.utils import file_response +from freezegun import freeze_time + +from city_scrapers.spiders.chi_ohare_noise import ChiOhareNoiseSpider + +test_response = file_response( + join(dirname(__file__), "files", "chi_ohare_noise.html"), + url="https://www.oharenoise.org/about-oncc/agendas-and-minutes", +) +spider = ChiOhareNoiseSpider() + +freezer = freeze_time("2020-07-09") +freezer.start() + +parsed_items = [item for item in spider.parse(test_response)] + +freezer.stop() + + +def test_tests(): + print("Please write some tests for this spider or at least disable this one.") + assert False + + +""" +Uncomment below +""" + +# def test_title(): +# assert parsed_items[0]["title"] == "EXPECTED TITLE" + + +# def test_description(): +# assert parsed_items[0]["description"] == "EXPECTED DESCRIPTION" + + +# def test_start(): +# assert parsed_items[0]["start"] == datetime(2019, 1, 1, 0, 0) + + +# def test_end(): +# assert parsed_items[0]["end"] == datetime(2019, 1, 1, 0, 0) + + +# def test_time_notes(): +# assert parsed_items[0]["time_notes"] == "EXPECTED TIME NOTES" + + +# def test_id(): +# assert parsed_items[0]["id"] == "EXPECTED ID" + + +# def test_status(): +# assert parsed_items[0]["status"] == "EXPECTED STATUS" + + +# def test_location(): +# assert parsed_items[0]["location"] == { +# "name": "EXPECTED NAME", +# "address": "EXPECTED ADDRESS" +# } + + +# def test_source(): +# assert parsed_items[0]["source"] == "EXPECTED URL" + + +# def test_links(): +# assert parsed_items[0]["links"] == [{ +# "href": "EXPECTED HREF", +# "title": "EXPECTED TITLE" +# }] + + +# def test_classification(): +# assert parsed_items[0]["classification"] == NOT_CLASSIFIED + + +# @pytest.mark.parametrize("item", parsed_items) +# def test_all_day(item): +# assert item["all_day"] is False From 15b6cf63c431a05eaab2af85a436af88dcfe7334 Mon Sep 17 00:00:00 2001 From: Donal O'Shea Date: Sat, 18 Jul 2020 12:15:31 +0100 Subject: [PATCH 02/13] Added code to parse meeting tile --- .logput.swp | Bin 0 -> 16384 bytes .output.swp | Bin 0 -> 36864 bytes city_scrapers/spiders/.chi_ohare_noise.py.swp | Bin 0 -> 12288 bytes .../spiders/.chi_teacherpension.py.swp | Bin 0 -> 16384 bytes city_scrapers/spiders/chi_ohare_noise.py | 10 +- city_scrapers/spiders/chi_ohare_noise_2.py | 79 +++ logput | 73 +++ output | 40 ++ tests/files/chi_ohare_noise_2.html | 499 ++++++++++++++++++ tests/test_chi_ohare_noise_2.py | 86 +++ 10 files changed, 782 insertions(+), 5 deletions(-) create mode 100644 .logput.swp create mode 100644 .output.swp create mode 100644 city_scrapers/spiders/.chi_ohare_noise.py.swp create mode 100644 city_scrapers/spiders/.chi_teacherpension.py.swp create mode 100644 city_scrapers/spiders/chi_ohare_noise_2.py create mode 100644 logput create mode 100644 output create mode 100644 tests/files/chi_ohare_noise_2.html create mode 100644 tests/test_chi_ohare_noise_2.py diff --git a/.logput.swp b/.logput.swp new file mode 100644 index 0000000000000000000000000000000000000000..5ef4e7391736e471c8932bf80a8f7a92f8f9799a GIT binary patch literal 16384 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 p3@&nkwZAXKb7t;E>WR!R4h;bhdf`{ta2|r^)~T literal 0 HcmV?d00001 diff --git a/city_scrapers/spiders/.chi_teacherpension.py.swp b/city_scrapers/spiders/.chi_teacherpension.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..23d95c232b3504ba311dc9cf0deab9edc07c941a GIT binary patch literal 16384 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 THP2>FdRJMcU?!I8*F5_-BYyF8 literal 0 HcmV?d00001 diff --git a/city_scrapers/spiders/chi_ohare_noise.py b/city_scrapers/spiders/chi_ohare_noise.py index 3558199b7..30b068c86 100644 --- a/city_scrapers/spiders/chi_ohare_noise.py +++ b/city_scrapers/spiders/chi_ohare_noise.py @@ -16,7 +16,7 @@ def parse(self, response): Change the `_parse_title`, `_parse_start`, etc methods to fit your scraping needs. """ - for item in response.css(".meetings"): + for item in response.css("tr.cat-list-row0") + response.css("tr.cat-list-row1"): meeting = Meeting( title=self._parse_title(item), description=self._parse_description(item), @@ -30,14 +30,14 @@ def parse(self, response): source=self._parse_source(response), ) - meeting["status"] = self._get_status(meeting) - meeting["id"] = self._get_id(meeting) +# meeting["status"] = self._get_status(meeting) +# meeting["id"] = self._get_id(meeting) - yield meeting + #yield meeting def _parse_title(self, item): """Parse or generate meeting title.""" - return "" + return item.css(".djc_category span").xpath("text()").extract() def _parse_description(self, item): """Parse or generate meeting description.""" diff --git a/city_scrapers/spiders/chi_ohare_noise_2.py b/city_scrapers/spiders/chi_ohare_noise_2.py new file mode 100644 index 000000000..b2d9ca97e --- /dev/null +++ b/city_scrapers/spiders/chi_ohare_noise_2.py @@ -0,0 +1,79 @@ +from city_scrapers_core.constants import NOT_CLASSIFIED +from city_scrapers_core.items import Meeting +from city_scrapers_core.spiders import CityScrapersSpider + + +class ChiOhareNoise2Spider(CityScrapersSpider): + name = "chi_ohare_noise_2" + agency = "Chicago O'Hare Noise Compatibility Commission" + timezone = "America/Chicago" + start_urls = ["https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-"] + + def parse(self, response): + """ + `parse` should always `yield` Meeting items. + + Change the `_parse_title`, `_parse_start`, etc methods to fit your scraping + needs. + """ + for item in response.css(".meetings"): + meeting = Meeting( + title=self._parse_title(item), + description=self._parse_description(item), + classification=self._parse_classification(item), + start=self._parse_start(item), + end=self._parse_end(item), + all_day=self._parse_all_day(item), + time_notes=self._parse_time_notes(item), + location=self._parse_location(item), + links=self._parse_links(item), + source=self._parse_source(response), + ) + + meeting["status"] = self._get_status(meeting) + meeting["id"] = self._get_id(meeting) + + yield meeting + + def _parse_title(self, item): + """Parse or generate meeting title.""" + return "" + + def _parse_description(self, item): + """Parse or generate meeting description.""" + return "" + + def _parse_classification(self, item): + """Parse or generate classification from allowed options.""" + return NOT_CLASSIFIED + + def _parse_start(self, item): + """Parse start datetime as a naive datetime object.""" + return None + + def _parse_end(self, item): + """Parse end datetime as a naive datetime object. Added by pipeline if None""" + return None + + def _parse_time_notes(self, item): + """Parse any additional notes on the timing of the meeting""" + return "" + + def _parse_all_day(self, item): + """Parse or generate all-day status. Defaults to False.""" + return False + + def _parse_location(self, item): + """Parse or generate location.""" + return { + "address": "", + "name": "", + } + + def _parse_links(self, item): + """Parse or generate links.""" + return [{"href": "", "title": ""}] + + def _parse_source(self, response): + """Parse or generate source.""" + return response.url diff --git a/logput b/logput new file mode 100644 index 000000000..c48c5a3ad --- /dev/null +++ b/logput @@ -0,0 +1,73 @@ +2020-07-18 12:12:16 [scrapy.utils.log] INFO: Scrapy 2.1.0 started (bot: city_scrapers) +2020-07-18 12:12:16 [scrapy.utils.log] INFO: Versions: lxml 4.5.1.0, libxml2 2.9.10, cssselect 1.1.0, parsel 1.6.0, w3lib 1.22.0, Twisted 20.3.0, Python 3.8.4 (default, Jul 14 2020, 02:58:48) - [Clang 11.0.3 (clang-1103.0.32.62)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1g 21 Apr 2020), cryptography 2.9.2, Platform macOS-10.15.5-x86_64-i386-64bit +2020-07-18 12:12:16 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor +2020-07-18 12:12:16 [scrapy.crawler] INFO: Overridden settings: +{'AUTOTHROTTLE_ENABLED': True, + 'AUTOTHROTTLE_MAX_DELAY': 30.0, + 'AUTOTHROTTLE_START_DELAY': 1.0, + 'BOT_NAME': 'city_scrapers', + 'CLOSESPIDER_ERRORCOUNT': 5, + 'COMMANDS_MODULE': 'city_scrapers_core.commands', + 'COOKIES_ENABLED': False, + 'NEWSPIDER_MODULE': 'city_scrapers.spiders', + 'ROBOTSTXT_OBEY': True, + 'SPIDER_MODULES': ['city_scrapers.spiders'], + 'USER_AGENT': 'City Scrapers [development mode]. Learn more and say hello at ' + 'https://cityscrapers.org/'} +2020-07-18 12:12:16 [scrapy.extensions.telnet] INFO: Telnet Password: 1a7ca1f782ab637c +2020-07-18 12:12:16 [scrapy.middleware] INFO: Enabled extensions: +['scrapy.extensions.corestats.CoreStats', + 'scrapy.extensions.telnet.TelnetConsole', + 'scrapy.extensions.memusage.MemoryUsage', + 'scrapy.extensions.logstats.LogStats', + 'scrapy.extensions.throttle.AutoThrottle'] +2020-07-18 12:12:16 [scrapy.middleware] INFO: Enabled downloader middlewares: +['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', + 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', + 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', + 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware', + 'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware', + 'scrapy.downloadermiddlewares.retry.RetryMiddleware', + 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware', + 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', + 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', + 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', + 'scrapy.downloadermiddlewares.stats.DownloaderStats'] +2020-07-18 12:12:16 [scrapy.middleware] INFO: Enabled spider middlewares: +['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', + 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', + 'scrapy.spidermiddlewares.referer.RefererMiddleware', + 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', + 'scrapy.spidermiddlewares.depth.DepthMiddleware'] +2020-07-18 12:12:16 [scrapy.middleware] INFO: Enabled item pipelines: +['city_scrapers_core.pipelines.MeetingPipeline'] +2020-07-18 12:12:16 [scrapy.core.engine] INFO: Spider opened +2020-07-18 12:12:16 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) +2020-07-18 12:12:16 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 +2020-07-18 12:12:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-07-18 12:12:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-07-18 12:12:18 [scrapy.core.engine] INFO: Closing spider (finished) +2020-07-18 12:12:18 [scrapy.statscollectors] INFO: Dumping Scrapy stats: +{'downloader/request_bytes': 582, + 'downloader/request_count': 2, + 'downloader/request_method_count/GET': 2, + 'downloader/response_bytes': 10377, + 'downloader/response_count': 2, + 'downloader/response_status_count/200': 2, + 'elapsed_time_seconds': 1.819774, + 'finish_reason': 'finished', + 'finish_time': datetime.datetime(2020, 7, 18, 11, 12, 18, 229610), + 'log_count/DEBUG': 2, + 'log_count/INFO': 10, + 'memusage/max': 185737216, + 'memusage/startup': 185737216, + 'response_received_count': 2, + 'robotstxt/request_count': 1, + 'robotstxt/response_count': 1, + 'robotstxt/response_status_count/200': 1, + 'scheduler/dequeued': 1, + 'scheduler/dequeued/memory': 1, + 'scheduler/enqueued': 1, + 'scheduler/enqueued/memory': 1, + 'start_time': datetime.datetime(2020, 7, 18, 11, 12, 16, 409836)} +2020-07-18 12:12:18 [scrapy.core.engine] INFO: Spider closed (finished) diff --git a/output b/output new file mode 100644 index 000000000..23d402651 --- /dev/null +++ b/output @@ -0,0 +1,40 @@ +['\r\n\t\t\t\t\t\tFly Quiet Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tExecutive Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tTechnical Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tResidential Sound Insulation Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tExecutive Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tAd Hoc Governance Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tExecutive Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tAd Hoc Governance Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tExecutive Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tFly Quiet Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tONCC General Meeting \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tFly Quiet Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tAd Hoc Governance Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tAd-Hoc Nominating Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tFly Quiet Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tTechnical Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tFly Quiet Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tONCC General Meeting \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tResidential Sound Insulation Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ +['\r\n\t\t\t\t\t\tAd Hoc Governance Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] +============ diff --git a/tests/files/chi_ohare_noise_2.html b/tests/files/chi_ohare_noise_2.html new file mode 100644 index 000000000..ae38e5bc9 --- /dev/null +++ b/tests/files/chi_ohare_noise_2.html @@ -0,0 +1,499 @@ + + + + + + + + + + + + + + + + + Meetings - O'Hare Noise Compatibility Commission + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+ +
+
+

MEETINGS

+
+
+
+
+
+ +
+ February 2019
+
+ March
+ +
+
+ + + + + + + + + + + +
+ + Sun + + + Mon + + + Tue + + + Wed + + + Thu + + + Fri + + + Sat +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ 27 + 28 + 29 + 30 + 31 + + 1 + + Friday, February 1, 2019 + + + + 2 + + Saturday, February 2, 2019 + +
+ + 3 + + Sunday, February 3, 2019 + + + + 4 + + Monday, February 4, 2019 + + + + 5 + + Tuesday, February 5, 2019 + + + + 6 + + Wednesday, February 6, 2019 + + + + 7 + + Thursday, February 7, 2019 + + + + 8 + + Friday, February 8, 2019 + + + + 9 + + Saturday, February 9, 2019 + +
+ + 10 + + Sunday, February 10, 2019 + + + + 11 + + Monday, February 11, 2019 + + + + 12 + + Tuesday, February 12, 2019 + + + + 13 + + Wednesday, February 13, 2019 + + + + 14 + + Thursday, February 14, 2019 + + + + 15 + + Friday, February 15, 2019 + + + + 16 + + Saturday, February 16, 2019 + +
+ + 17 + + Sunday, February 17, 2019 + + + + 18 + + Monday, February 18, 2019 + + + + 19 + + Tuesday, February 19, 2019 + + + + + 20 + + Wednesday, February 20, 2019 + + + + 21 + + Thursday, February 21, 2019 + + + + 22 + + Friday, February 22, 2019 + + + + 23 + + Saturday, February 23, 2019 + +
+ + 24 + + Sunday, February 24, 2019 + + + + 25 + + Monday, February 25, 2019 + + + + 26 + + Tuesday, February 26, 2019 + + + + + 27 + + Wednesday, February 27, 2019 + + + + 28 + + Thursday, February 28, 2019 + + + 1 + 2
+
+
+
+ + + +
+ + + +
+
+ \ No newline at end of file diff --git a/tests/test_chi_ohare_noise_2.py b/tests/test_chi_ohare_noise_2.py new file mode 100644 index 000000000..39bb9568d --- /dev/null +++ b/tests/test_chi_ohare_noise_2.py @@ -0,0 +1,86 @@ +from datetime import datetime +from os.path import dirname, join + +import pytest +from city_scrapers_core.constants import NOT_CLASSIFIED +from city_scrapers_core.utils import file_response +from freezegun import freeze_time + +from city_scrapers.spiders.chi_ohare_noise_2 import ChiOhareNoise2Spider + +test_response = file_response( + join(dirname(__file__), "files", "chi_ohare_noise_2.html"), + url="https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-", +) +spider = ChiOhareNoise2Spider() + +freezer = freeze_time("2020-07-13") +freezer.start() + +parsed_items = [item for item in spider.parse(test_response)] + +freezer.stop() + + +def test_tests(): + print("Please write some tests for this spider or at least disable this one.") + assert False + + +""" +Uncomment below +""" + +# def test_title(): +# assert parsed_items[0]["title"] == "EXPECTED TITLE" + + +# def test_description(): +# assert parsed_items[0]["description"] == "EXPECTED DESCRIPTION" + + +# def test_start(): +# assert parsed_items[0]["start"] == datetime(2019, 1, 1, 0, 0) + + +# def test_end(): +# assert parsed_items[0]["end"] == datetime(2019, 1, 1, 0, 0) + + +# def test_time_notes(): +# assert parsed_items[0]["time_notes"] == "EXPECTED TIME NOTES" + + +# def test_id(): +# assert parsed_items[0]["id"] == "EXPECTED ID" + + +# def test_status(): +# assert parsed_items[0]["status"] == "EXPECTED STATUS" + + +# def test_location(): +# assert parsed_items[0]["location"] == { +# "name": "EXPECTED NAME", +# "address": "EXPECTED ADDRESS" +# } + + +# def test_source(): +# assert parsed_items[0]["source"] == "EXPECTED URL" + + +# def test_links(): +# assert parsed_items[0]["links"] == [{ +# "href": "EXPECTED HREF", +# "title": "EXPECTED TITLE" +# }] + + +# def test_classification(): +# assert parsed_items[0]["classification"] == NOT_CLASSIFIED + + +# @pytest.mark.parametrize("item", parsed_items) +# def test_all_day(item): +# assert item["all_day"] is False From fcca613158c72247cc2077b54ce95de3858d8785 Mon Sep 17 00:00:00 2001 From: Donal O'Shea Date: Thu, 23 Jul 2020 16:14:23 +0100 Subject: [PATCH 03/13] Added request code to retrieve subpages. Added code to retrieve start and end times from root page. Need to modify routines to retrieve data from subpages and format as meeting items --- .logput.swp | Bin 16384 -> 16384 bytes .output.swp | Bin 36864 -> 16384 bytes city_scrapers/spiders/.chi_ohare_noise.py.swp | Bin 12288 -> 12288 bytes .../spiders/.chi_ohare_noise_2.py.swp | Bin 0 -> 12288 bytes .../spiders/.chi_teacherpension.py.swp | Bin 16384 -> 0 bytes city_scrapers/spiders/chi_ohare_noise_2.py | 60 +- logput | 610 +++++++++++++++++- output | 265 ++++++-- 8 files changed, 839 insertions(+), 96 deletions(-) create mode 100644 city_scrapers/spiders/.chi_ohare_noise_2.py.swp delete mode 100644 city_scrapers/spiders/.chi_teacherpension.py.swp diff --git a/.logput.swp b/.logput.swp index 5ef4e7391736e471c8932bf80a8f7a92f8f9799a..19cff9d3350cf2e6791c7bccbd44a7b4902c3d5d 100644 GIT binary patch delta 750 zcmZXSPixdb7{(`C54F18RQ%Jfh?CufHQi*BOeT{}s!^ecMYjh97f~pwq^0a`3*A-h zL0Ee5Py{J+61}MS0VF5cB8YlYKY-vtP;OV zmu70XTCor;5uvM(Cg#wm7l@1?w7Rm=*?cHJoqn4WPVh1D=i)ua6bd?19jjOklb)g*pv=)DqTKEYz* z20V{3%jJ(Hf0$Hk$77bw#|q>8r&J%ZDC6})jY{99zWZq)&yYhDWiRZeLO8wI3QuUURkJl?kI<#e+J@X}t zkU#pT_kYLYa}J?bz!Ts$umDT}5`chh@V^Gufh6mV#;3(^*?l{E2fdQ{o#6O*Y8+rJ rnC+S-Rc~?Oc6w!{qCuD delta 738 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 diff --git a/city_scrapers/spiders/.chi_ohare_noise_2.py.swp b/city_scrapers/spiders/.chi_ohare_noise_2.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..0680b2a6b92070df789ce5514c2bf1a743203850 GIT binary patch literal 12288 zcmeHN-)kI29G|L9e`rsSHQE3~(W^y~1n|5z^yEB*c ztgU_U!AIZpK@mZ0@elA-Q1HRNSt|NcMG$;d6h*N3nc3aD+w11i2NA?w_+)Q>eCPX} z&wS_mox9B1URSbO7pgNM>k$ii6qlTCNru8TwN2p!O%`#-4}|1S%?>-apt9&vFim=_T1Mj3*yb1;i1_}lW1_}lW1_}lW1_}lW1_}lW1_}lW2L6K#Fqe=I@n!$u z?Jyqy|4+aF|8Nf>p97x(mw=A|AD9Jp0VBXp;M(1Ud;)ZUT{g2V4Y}fD*79_~uUZ1x^A7fqlTYxQFmQZ~-_9JOJzgb^#;6l|6*K1H28q z2Al&<0FMIS?-OO><50@Mab8{HQ-}_1J42Tz$3tqBhU$)2UdU);Fq0* z{0w{vya7bO8DJ6E3;cEmA-@7wfDeE-fz!ZA;AvnS*bh7e{0Y9V0+)eHz(wFVpx5CE z;CK8Wb2a@@=0E6H|BlHtc_OabkxwHo!@$q2l-zDd9!cBMcSbO`Pq#lw(ZHBXP)F; z3vv}P&zo>rhr%w^mNq@a8?5aqNmW3Nc%B6iav-z?sR=KM4^TW^&CKsmkSX-km`D9U zaY^CWs>!JmE#a@zpkYca&J~J~H1_v-68h=8Qji?3|7hUn%$@r#b>XUd6v`xJ)MsLY z_v(T*eRs>Iv#!fsy4Ing2swO+Q_-M$%p8+2=x|$7jkZ)#s8yG=C)#I2rkbVku&Q09 zR30zect@;`&&yLQy0ZvN<77Uuboaj)KFhDf5POu4H1F(RQlIL7mvEk0%U(V3^RuX(sWx-8OFp$#Y!RQNQzl&t!U4q*Ljxw1UDP4G(XG~q7KLWKC? zmfebBH+$JXV3{#_3)}SGAMFU-qNK?Td-2}1CAG_zaIF3RLT_abBG!!5V?U<m-j(8V~vl(H*3kioI*P6fg*Nqi^|xQ=13>#~X8 z=;R(7N>Y#0?|2Km$j`L7R3!{Hle(5ZyY*C5XdMf;#_Fdt^YIej$?gPg)PR1}3}`n& z3aLiNsjkktlqJjN8;)`vPgpn*rN*X7L6?2bU1@il=9 z35g>t%D-Q3)?&4p`o-`WnM^=jf4asupEJDf$fC#2#V z+{Y#E+GK6AI{9R^R;x}}aU9os=2aX8Fs?P*;t^6@b*_oO>p^^6VK@=jJGwckrpLyQ z;Ep#oKkj(bxuAv2FV=*I3*x%e63CQ+9}DYKs1~gc-VC>h*-jK=9@96*&0w`9bCJ9> zhoP2|tLAZ)=7E^3tM8$AZ=O5#AmVm%{hW$c7(|NREWM?q-d8e}OSaLLo$E;Qih;&d gVBi1|3mV7hq+ODIlGvUeozm8ByoyB!o6|D+8&LpgPXGV_ literal 0 HcmV?d00001 diff --git a/city_scrapers/spiders/.chi_teacherpension.py.swp b/city_scrapers/spiders/.chi_teacherpension.py.swp deleted file mode 100644 index 23d95c232b3504ba311dc9cf0deab9edc07c941a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 THP2>FdRJMcU?!I8*F5_-BYyF8 diff --git a/city_scrapers/spiders/chi_ohare_noise_2.py b/city_scrapers/spiders/chi_ohare_noise_2.py index b2d9ca97e..e61b77ecd 100644 --- a/city_scrapers/spiders/chi_ohare_noise_2.py +++ b/city_scrapers/spiders/chi_ohare_noise_2.py @@ -1,3 +1,8 @@ +from datetime import datetime +from datetime import timedelta + +from scrapy import Request + from city_scrapers_core.constants import NOT_CLASSIFIED from city_scrapers_core.items import Meeting from city_scrapers_core.spiders import CityScrapersSpider @@ -7,7 +12,7 @@ class ChiOhareNoise2Spider(CityScrapersSpider): name = "chi_ohare_noise_2" agency = "Chicago O'Hare Noise Compatibility Commission" timezone = "America/Chicago" - start_urls = ["https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-"] + start_urls = ["https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-"] def parse(self, response): """ @@ -16,28 +21,37 @@ def parse(self, response): Change the `_parse_title`, `_parse_start`, etc methods to fit your scraping needs. """ - for item in response.css(".meetings"): - meeting = Meeting( - title=self._parse_title(item), - description=self._parse_description(item), - classification=self._parse_classification(item), - start=self._parse_start(item), - end=self._parse_end(item), - all_day=self._parse_all_day(item), - time_notes=self._parse_time_notes(item), - location=self._parse_location(item), - links=self._parse_links(item), - source=self._parse_source(response), - ) - - meeting["status"] = self._get_status(meeting) - meeting["id"] = self._get_id(meeting) - - yield meeting + for item in response.css(".ev_td_li"): + surl = self._parse_url(item) + yield Request(url=response.urljoin(surl), callback=self._parse_location) +# stime = self._parse_start(item) +# print(response.urljoin(surl)) +# meeting = Meeting( +# title=self._parse_title(item), +# description=self._parse_description(item), +# classification=self._parse_classification(item), +# start=stime, +# end=stime+timedelta(hours=1), +# all_day=self._parse_all_day(item), +# time_notes=self._parse_time_notes(item), +# location= None, +# links=self._parse_links(item), +# source=self._parse_source(response), +# ) +# + + #meeting["status"] = self._get_status(meeting) + #meeting["id"] = self._get_id(meeting) + + #yield meeting def _parse_title(self, item): """Parse or generate meeting title.""" - return "" + return [i.strip() for i in item.xpath('p/a/text()').extract()][0] + + def _parse_url(self, item): + """Parse or generate meeting title.""" + return [i.strip() for i in item.xpath('p/a/@href').extract()][0] def _parse_description(self, item): """Parse or generate meeting description.""" @@ -49,7 +63,7 @@ def _parse_classification(self, item): def _parse_start(self, item): """Parse start datetime as a naive datetime object.""" - return None + return datetime.strptime(item.xpath('p/text()').extract()[1].strip(), '%A, %B %d, %Y %I:%M%p') def _parse_end(self, item): """Parse end datetime as a naive datetime object. Added by pipeline if None""" @@ -63,8 +77,10 @@ def _parse_all_day(self, item): """Parse or generate all-day status. Defaults to False.""" return False - def _parse_location(self, item): + def _parse_location(self, response): """Parse or generate location.""" + print('started') + print(response.text) return { "address": "", "name": "", diff --git a/logput b/logput index c48c5a3ad..72526a858 100644 --- a/logput +++ b/logput @@ -1,7 +1,7 @@ -2020-07-18 12:12:16 [scrapy.utils.log] INFO: Scrapy 2.1.0 started (bot: city_scrapers) -2020-07-18 12:12:16 [scrapy.utils.log] INFO: Versions: lxml 4.5.1.0, libxml2 2.9.10, cssselect 1.1.0, parsel 1.6.0, w3lib 1.22.0, Twisted 20.3.0, Python 3.8.4 (default, Jul 14 2020, 02:58:48) - [Clang 11.0.3 (clang-1103.0.32.62)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1g 21 Apr 2020), cryptography 2.9.2, Platform macOS-10.15.5-x86_64-i386-64bit -2020-07-18 12:12:16 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor -2020-07-18 12:12:16 [scrapy.crawler] INFO: Overridden settings: +2020-07-23 16:12:35 [scrapy.utils.log] INFO: Scrapy 2.1.0 started (bot: city_scrapers) +2020-07-23 16:12:35 [scrapy.utils.log] INFO: Versions: lxml 4.5.1.0, libxml2 2.9.10, cssselect 1.1.0, parsel 1.6.0, w3lib 1.22.0, Twisted 20.3.0, Python 3.8.4 (default, Jul 14 2020, 02:58:48) - [Clang 11.0.3 (clang-1103.0.32.62)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1g 21 Apr 2020), cryptography 2.9.2, Platform macOS-10.15.5-x86_64-i386-64bit +2020-07-23 16:12:35 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor +2020-07-23 16:12:35 [scrapy.crawler] INFO: Overridden settings: {'AUTOTHROTTLE_ENABLED': True, 'AUTOTHROTTLE_MAX_DELAY': 30.0, 'AUTOTHROTTLE_START_DELAY': 1.0, @@ -14,14 +14,14 @@ 'SPIDER_MODULES': ['city_scrapers.spiders'], 'USER_AGENT': 'City Scrapers [development mode]. Learn more and say hello at ' 'https://cityscrapers.org/'} -2020-07-18 12:12:16 [scrapy.extensions.telnet] INFO: Telnet Password: 1a7ca1f782ab637c -2020-07-18 12:12:16 [scrapy.middleware] INFO: Enabled extensions: +2020-07-23 16:12:35 [scrapy.extensions.telnet] INFO: Telnet Password: c62403b0f1ae3302 +2020-07-23 16:12:35 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.memusage.MemoryUsage', 'scrapy.extensions.logstats.LogStats', 'scrapy.extensions.throttle.AutoThrottle'] -2020-07-18 12:12:16 [scrapy.middleware] INFO: Enabled downloader middlewares: +2020-07-23 16:12:35 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', @@ -33,41 +33,583 @@ 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] -2020-07-18 12:12:16 [scrapy.middleware] INFO: Enabled spider middlewares: +2020-07-23 16:12:35 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] -2020-07-18 12:12:16 [scrapy.middleware] INFO: Enabled item pipelines: +2020-07-23 16:12:35 [scrapy.middleware] INFO: Enabled item pipelines: ['city_scrapers_core.pipelines.MeetingPipeline'] -2020-07-18 12:12:16 [scrapy.core.engine] INFO: Spider opened -2020-07-18 12:12:16 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) -2020-07-18 12:12:16 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 -2020-07-18 12:12:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-07-18 12:12:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-07-18 12:12:18 [scrapy.core.engine] INFO: Closing spider (finished) -2020-07-18 12:12:18 [scrapy.statscollectors] INFO: Dumping Scrapy stats: -{'downloader/request_bytes': 582, - 'downloader/request_count': 2, - 'downloader/request_method_count/GET': 2, - 'downloader/response_bytes': 10377, - 'downloader/response_count': 2, - 'downloader/response_status_count/200': 2, - 'elapsed_time_seconds': 1.819774, +2020-07-23 16:12:35 [scrapy.core.engine] INFO: Spider opened +2020-07-23 16:12:35 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) +2020-07-23 16:12:35 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 +2020-07-23 16:12:36 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-07-23 16:12:37 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-07-23 16:12:38 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:38 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:39 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:39 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:40 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:40 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:41 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:41 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:42 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:42 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:42 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:43 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:44 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:44 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:45 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:45 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:46 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:46 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:47 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:47 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:47 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:48 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:48 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:49 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:49 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:49 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:50 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:50 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:51 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:51 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:52 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:52 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:52 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:53 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:53 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:54 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:54 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:54 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:54 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:55 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:55 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:55 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:56 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:56 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:56 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:56 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:56 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:56 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:57 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:57 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:57 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:57 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:58 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-23 16:12:58 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks + current.result = callback(current.result, *args, **kw) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f + return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper + return func(*args, **kwargs) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item + item["title"] = spider._clean_title(item["title"]) +KeyError: 'title' +2020-07-23 16:12:58 [scrapy.core.engine] INFO: Closing spider (finished) +2020-07-23 16:12:58 [scrapy.statscollectors] INFO: Dumping Scrapy stats: +{'downloader/request_bytes': 20268, + 'downloader/request_count': 47, + 'downloader/request_method_count/GET': 47, + 'downloader/response_bytes': 331885, + 'downloader/response_count': 47, + 'downloader/response_status_count/200': 47, + 'elapsed_time_seconds': 22.252104, 'finish_reason': 'finished', - 'finish_time': datetime.datetime(2020, 7, 18, 11, 12, 18, 229610), - 'log_count/DEBUG': 2, + 'finish_time': datetime.datetime(2020, 7, 23, 15, 12, 58, 206726), + 'log_count/DEBUG': 47, + 'log_count/ERROR': 45, 'log_count/INFO': 10, - 'memusage/max': 185737216, - 'memusage/startup': 185737216, - 'response_received_count': 2, + 'memusage/max': 184721408, + 'memusage/startup': 184721408, + 'request_depth_max': 1, + 'response_received_count': 47, 'robotstxt/request_count': 1, 'robotstxt/response_count': 1, 'robotstxt/response_status_count/200': 1, - 'scheduler/dequeued': 1, - 'scheduler/dequeued/memory': 1, - 'scheduler/enqueued': 1, - 'scheduler/enqueued/memory': 1, - 'start_time': datetime.datetime(2020, 7, 18, 11, 12, 16, 409836)} -2020-07-18 12:12:18 [scrapy.core.engine] INFO: Spider closed (finished) + 'scheduler/dequeued': 46, + 'scheduler/dequeued/memory': 46, + 'scheduler/enqueued': 46, + 'scheduler/enqueued/memory': 46, + 'start_time': datetime.datetime(2020, 7, 23, 15, 12, 35, 954622)} +2020-07-23 16:12:58 [scrapy.core.engine] INFO: Spider closed (finished) diff --git a/output b/output index 23d402651..8ca763d24 100644 --- a/output +++ b/output @@ -1,40 +1,225 @@ -['\r\n\t\t\t\t\t\tFly Quiet Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tExecutive Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tTechnical Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tResidential Sound Insulation Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tExecutive Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tAd Hoc Governance Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tExecutive Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tAd Hoc Governance Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tExecutive Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tFly Quiet Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tONCC General Meeting \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tFly Quiet Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tAd Hoc Governance Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tAd-Hoc Nominating Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tFly Quiet Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tTechnical Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tFly Quiet Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tONCC General Meeting \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tResidential Sound Insulation Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ -['\r\n\t\t\t\t\t\tAd Hoc Governance Committee \r\n\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t'] -============ +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/06/297/-/executive-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Executive Committee Meeting +2020-01-06 11:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/10/315/-/o-hare-noise-compatibility-commission-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +O'Hare Noise Compatibility Commission Meeting +2020-01-10 09:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/16/334/-/governance-committee +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Governance Committee +2020-01-16 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/21/295/-/cancelled-technical-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +CANCELLED Technical Committee Meeting +2020-01-21 10:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/28/293/-/fly-quiet-committee-note-change-of-location +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Fly Quiet Committee *NOTE CHANGE OF LOCATION* +2020-01-28 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/29/294/-/residential-sound-insulation-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Residential Sound Insulation Committee Meeting +2020-01-29 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/10/307/-/executive-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Executive Committee Meeting +2020-02-10 11:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/14/296/-/o-hare-noise-compatibility-commission-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +O'Hare Noise Compatibility Commission Meeting +2020-02-14 09:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/18/336/-/governance-committee +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Governance Committee +2020-02-18 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/25/298/-/fly-quiet-committee +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Fly Quiet Committee +2020-02-25 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/17/322/-/cancelled-technical-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +CANCELLED - Technical Committee Meeting +2020-03-17 10:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/18/335/-/cancelled-governance-committee +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +CANCELLED - Governance Committee +2020-03-18 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/24/299/-/cancelled-fly-quiet-committee +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +CANCELLED - Fly Quiet Committee +2020-03-24 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/30/308/-/executive-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Executive Committee Meeting +2020-03-30 12:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/03/316/-/cancelled-o-hare-noise-compatibility-commission-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +CANCELLED - O'Hare Noise Compatibility Commission Meeting +2020-04-03 09:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/14/323/-/technical-committee-meeting-via-video-or-audio-conference +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Technical Committee Meeting (via video or audio conference) +2020-04-14 10:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/20/337/-/governance-committee-via-video-or-audio-conference +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Governance Committee (via video or audio conference) +2020-04-20 14:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/21/300/-/fly-quiet-committee-via-video-or-audio-conference +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Fly Quiet Committee (via video or audio conference) +2020-04-21 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/27/309/-/executive-committee-meeting-via-video-teleconference +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Executive Committee Meeting (via video/teleconference) +2020-04-27 11:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/01/317/-/cancelled-o-hare-noise-compatibility-commission-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +CANCELLED O'Hare Noise Compatibility Commission Meeting +2020-05-01 09:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/12/338/-/ad-hoc-nominating-committee-via-video-teleconference +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Ad Hoc Nominating Committee (via video/teleconference) +2020-05-12 12:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/13/329/-/residential-sound-insulation-committee-meeting-via-video-teleconference +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Residential Sound Insulation Committee Meeting (via video/teleconference) +2020-05-13 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/324/-/technical-committee-meeting-via-video-teleconference +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Technical Committee Meeting (via video/teleconference) +2020-05-19 10:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/339/-/ad-hoc-governance-committee-via-video-teleconference +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Ad Hoc Governance Committee (via video/teleconference) +2020-05-19 14:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/26/301/-/fly-quiet-committee-via-video-teleconference +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Fly Quiet Committee (via video/teleconference) +2020-05-26 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/01/310/-/executive-committee-meeting-via-video-teleconference +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Executive Committee Meeting (via video/teleconference) +2020-06-01 11:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/05/318/-/o-hare-noise-compatibility-commission-meeting-via-video-teleconference +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +O'Hare Noise Compatibility Commission Meeting (via video/teleconference) +2020-06-05 09:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/23/302/-/fly-quiet-committee-via-video-teleconference +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Fly Quiet Committee (via video/teleconference) +2020-06-23 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/13/311/-/executive-committee-strategic-planning-session +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Executive Committee Strategic Planning Session +2020-08-13 11:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/18/332/-/technical-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Technical Committee Meeting +2020-08-18 10:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/20/303/-/fly-quiet-committee-note-change-of-date +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Fly Quiet Committee *Note Change of Date* +2020-08-20 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/31/313/-/executive-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Executive Committee Meeting +2020-08-31 11:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/04/319/-/o-hare-noise-compatibility-commission-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +O'Hare Noise Compatibility Commission Meeting +2020-09-04 09:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/09/330/-/residential-sound-insulation-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Residential Sound Insulation Committee Meeting +2020-09-09 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/15/325/-/technical-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Technical Committee Meeting +2020-09-15 10:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/22/304/-/fly-quiet-committee +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Fly Quiet Committee +2020-09-22 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/28/312/-/executive-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Executive Committee Meeting +2020-09-28 11:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/02/320/-/o-hare-noise-compatibility-commission-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +O'Hare Noise Compatibility Commission Meeting +2020-10-02 09:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/13/326/-/technical-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Technical Committee Meeting +2020-10-13 10:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/27/305/-/fly-quiet-committee +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Fly Quiet Committee +2020-10-27 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/02/314/-/executive-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Executive Committee Meeting +2020-11-02 11:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/06/321/-/o-hare-noise-compatibility-commission-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +O'Hare Noise Compatibility Commission Meeting +2020-11-06 09:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/11/331/-/residential-sound-insulation-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Residential Sound Insulation Committee Meeting +2020-11-11 10:30:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/17/327/-/technical-committee-meeting +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Technical Committee Meeting +2020-11-17 10:00:00 +================= +https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/12/08/306/-/fly-quiet-committee +['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] +Fly Quiet Committee +2020-12-08 10:30:00 +================= From 16973d32a616b2700f69a1343c851df1b4302082 Mon Sep 17 00:00:00 2001 From: Donal O'Shea Date: Wed, 29 Jul 2020 12:55:44 +0100 Subject: [PATCH 04/13] Updated _parse_title to retrieve from subpage --- .logput.swp | Bin 16384 -> 0 bytes .output.swp | Bin 16384 -> 0 bytes city_scrapers/spiders/.chi_ohare_noise.py.swp | Bin 12288 -> 0 bytes .../spiders/.chi_ohare_noise_2.py.swp | Bin 12288 -> 12288 bytes city_scrapers/spiders/chi_ohare_noise_2.py | 42 +- logput | 632 ++---------------- output | 245 +------ 7 files changed, 109 insertions(+), 810 deletions(-) delete mode 100644 .logput.swp delete mode 100644 .output.swp delete mode 100644 city_scrapers/spiders/.chi_ohare_noise.py.swp diff --git a/.logput.swp b/.logput.swp deleted file mode 100644 index 19cff9d3350cf2e6791c7bccbd44a7b4902c3d5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 diff --git a/city_scrapers/spiders/.chi_ohare_noise_2.py.swp b/city_scrapers/spiders/.chi_ohare_noise_2.py.swp index 0680b2a6b92070df789ce5514c2bf1a743203850..3b0deddbaa96f2cf0a1903b6f45febe8025a71b7 100644 GIT binary patch delta 726 zcmY+>PiWIn90%}UP3zWKbenXOQCybHHA%Ck4nYw%r?`WR=}AGxOta>#?abP)$!Y~* z6+P$>WW1vYPVwMDarWR%(1V^f6hWt;^y=T69>s5=oA$wn_v82H@q<@MR+0nLi8CiA z#6$7@gwsw`yDyp@y{{?KN@VAAmXmig%v$c-yL?=2`xUN)B|nPk3G>*lI9#7%8aXlq1A z;fkj6$C}if{H!U>iO$$TJ`wBT=VMxPVI`L6|Np(s4P55T#La?LbeZX8J%=CFx_DTR s@TA^jYzX8mb@TDdTA z_VlPSoIgZZJBZ$|>?!^(J*UG-BG+;F!n(F_!srgd)p}i$sm5n>!;P;}Djj_oAu5Q3 z;?4U#L=&Jx9NumtT7)Smz;<|tiA!)3#$Y!jAO(H!-5u@E91Jf)UW*lZ;E@2Al^OzDJ3^!3($zE?j|8NW#xW4D>-7{zw|phD5XikHCj>P=G=B)rET3>bepUw%Q9?V4u=lF5@-VR$LZt6-2xi z#tmB?isY(p+2*>-ysBe+EYI0hZcwW^EM`1jayh%0F+}7*zj&%y;-$K`@mKpIi7{Q1 zgEP7z>iT$;mwAPWHB&Vp(U6x!#t-`jlD5sy`7^Tle(^;of)(cAmQ9ZO3Fhr(YLOW9Pc b_1v{Op-{#hEGbvST+kvN`EL(dnj4 diff --git a/city_scrapers/spiders/chi_ohare_noise_2.py b/city_scrapers/spiders/chi_ohare_noise_2.py index e61b77ecd..ffbaac9d0 100644 --- a/city_scrapers/spiders/chi_ohare_noise_2.py +++ b/city_scrapers/spiders/chi_ohare_noise_2.py @@ -23,31 +23,33 @@ def parse(self, response): """ for item in response.css(".ev_td_li"): surl = self._parse_url(item) - yield Request(url=response.urljoin(surl), callback=self._parse_location) -# stime = self._parse_start(item) -# print(response.urljoin(surl)) -# meeting = Meeting( -# title=self._parse_title(item), -# description=self._parse_description(item), -# classification=self._parse_classification(item), -# start=stime, -# end=stime+timedelta(hours=1), -# all_day=self._parse_all_day(item), -# time_notes=self._parse_time_notes(item), -# location= None, -# links=self._parse_links(item), -# source=self._parse_source(response), -# ) -# + yield Request(url=response.urljoin(surl), callback=self._parse_subpage) #meeting["status"] = self._get_status(meeting) #meeting["id"] = self._get_id(meeting) #yield meeting - def _parse_title(self, item): + def _parse_subpage(self, response): +# stime = self._parse_start(response) +# meeting = Meeting( +# self._parse_title(response), +# description=self._parse_description(response), +# classification=self._parse_classification(response), +# start=stime, +# end=stime+timedelta(hours=1), +# all_day=self._parse_all_day(response), +# time_notes=self._parse_time_notes(response), +# location= None, +# links=self._parse_links(response), +# source=self._parse_source(response), +# ) +# +# yield meeting + + def _parse_title(self, response): """Parse or generate meeting title.""" - return [i.strip() for i in item.xpath('p/a/text()').extract()][0] + return response.xpath("//div[@class='jev_evdt_header']/div/h2/text()").extract()[0] def _parse_url(self, item): """Parse or generate meeting title.""" @@ -77,10 +79,8 @@ def _parse_all_day(self, item): """Parse or generate all-day status. Defaults to False.""" return False - def _parse_location(self, response): + def _parse_location(self, item): """Parse or generate location.""" - print('started') - print(response.text) return { "address": "", "name": "", diff --git a/logput b/logput index 72526a858..2adb07f06 100644 --- a/logput +++ b/logput @@ -1,7 +1,7 @@ -2020-07-23 16:12:35 [scrapy.utils.log] INFO: Scrapy 2.1.0 started (bot: city_scrapers) -2020-07-23 16:12:35 [scrapy.utils.log] INFO: Versions: lxml 4.5.1.0, libxml2 2.9.10, cssselect 1.1.0, parsel 1.6.0, w3lib 1.22.0, Twisted 20.3.0, Python 3.8.4 (default, Jul 14 2020, 02:58:48) - [Clang 11.0.3 (clang-1103.0.32.62)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1g 21 Apr 2020), cryptography 2.9.2, Platform macOS-10.15.5-x86_64-i386-64bit -2020-07-23 16:12:35 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor -2020-07-23 16:12:35 [scrapy.crawler] INFO: Overridden settings: +2020-07-28 22:48:10 [scrapy.utils.log] INFO: Scrapy 2.1.0 started (bot: city_scrapers) +2020-07-28 22:48:10 [scrapy.utils.log] INFO: Versions: lxml 4.5.1.0, libxml2 2.9.10, cssselect 1.1.0, parsel 1.6.0, w3lib 1.22.0, Twisted 20.3.0, Python 3.8.5 (default, Jul 21 2020, 10:48:26) - [Clang 11.0.3 (clang-1103.0.32.62)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1g 21 Apr 2020), cryptography 2.9.2, Platform macOS-10.15.5-x86_64-i386-64bit +2020-07-28 22:48:10 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor +2020-07-28 22:48:10 [scrapy.crawler] INFO: Overridden settings: {'AUTOTHROTTLE_ENABLED': True, 'AUTOTHROTTLE_MAX_DELAY': 30.0, 'AUTOTHROTTLE_START_DELAY': 1.0, @@ -14,14 +14,14 @@ 'SPIDER_MODULES': ['city_scrapers.spiders'], 'USER_AGENT': 'City Scrapers [development mode]. Learn more and say hello at ' 'https://cityscrapers.org/'} -2020-07-23 16:12:35 [scrapy.extensions.telnet] INFO: Telnet Password: c62403b0f1ae3302 -2020-07-23 16:12:35 [scrapy.middleware] INFO: Enabled extensions: +2020-07-28 22:48:10 [scrapy.extensions.telnet] INFO: Telnet Password: df55a7553087ce04 +2020-07-28 22:48:10 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.memusage.MemoryUsage', 'scrapy.extensions.logstats.LogStats', 'scrapy.extensions.throttle.AutoThrottle'] -2020-07-23 16:12:35 [scrapy.middleware] INFO: Enabled downloader middlewares: +2020-07-28 22:48:10 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', @@ -33,575 +33,79 @@ 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] -2020-07-23 16:12:35 [scrapy.middleware] INFO: Enabled spider middlewares: +2020-07-28 22:48:10 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] -2020-07-23 16:12:35 [scrapy.middleware] INFO: Enabled item pipelines: +2020-07-28 22:48:10 [scrapy.middleware] INFO: Enabled item pipelines: ['city_scrapers_core.pipelines.MeetingPipeline'] -2020-07-23 16:12:35 [scrapy.core.engine] INFO: Spider opened -2020-07-23 16:12:35 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) -2020-07-23 16:12:35 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 -2020-07-23 16:12:36 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-07-23 16:12:37 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-07-23 16:12:38 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:38 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:39 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:39 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:40 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:40 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:41 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:41 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:42 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:42 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:42 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:43 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:44 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:44 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:45 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:45 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:46 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:46 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:47 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:47 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:47 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:48 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:48 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:49 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:49 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:49 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:50 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:50 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:51 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:51 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:52 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:52 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:52 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:53 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:53 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:54 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:54 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:54 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:54 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:55 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:55 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:55 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:56 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:56 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:56 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:56 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:56 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:56 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:57 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:57 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:57 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:57 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:58 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-23 16:12:58 [scrapy.core.scraper] ERROR: Error processing {'address': '', 'name': ''} -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks - current.result = callback(current.result, *args, **kw) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 154, in f - return deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/decorators.py", line 12, in wrapper - return func(*args, **kwargs) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/city_scrapers_core/pipelines/meeting.py", line 9, in process_item - item["title"] = spider._clean_title(item["title"]) -KeyError: 'title' -2020-07-23 16:12:58 [scrapy.core.engine] INFO: Closing spider (finished) -2020-07-23 16:12:58 [scrapy.statscollectors] INFO: Dumping Scrapy stats: +2020-07-28 22:48:10 [scrapy.core.engine] INFO: Spider opened +2020-07-28 22:48:10 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) +2020-07-28 22:48:10 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 +2020-07-28 22:48:11 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-07-28 22:48:12 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-07-28 22:48:13 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:14 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:14 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:15 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:15 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:17 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:17 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:17 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:21 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:21 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:22 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:22 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:22 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:23 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:23 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:23 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:24 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:24 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:25 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:25 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:25 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:26 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:26 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:28 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:28 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:30 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:30 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-28 22:48:32 [scrapy.core.engine] INFO: Closing spider (finished) +2020-07-28 22:48:32 [scrapy.statscollectors] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 20268, 'downloader/request_count': 47, 'downloader/request_method_count/GET': 47, - 'downloader/response_bytes': 331885, + 'downloader/response_bytes': 331892, 'downloader/response_count': 47, 'downloader/response_status_count/200': 47, - 'elapsed_time_seconds': 22.252104, + 'elapsed_time_seconds': 21.846181, 'finish_reason': 'finished', - 'finish_time': datetime.datetime(2020, 7, 23, 15, 12, 58, 206726), + 'finish_time': datetime.datetime(2020, 7, 28, 21, 48, 32, 577090), 'log_count/DEBUG': 47, - 'log_count/ERROR': 45, 'log_count/INFO': 10, - 'memusage/max': 184721408, - 'memusage/startup': 184721408, + 'memusage/max': 186003456, + 'memusage/startup': 186003456, 'request_depth_max': 1, 'response_received_count': 47, 'robotstxt/request_count': 1, @@ -611,5 +115,5 @@ KeyError: 'title' 'scheduler/dequeued/memory': 46, 'scheduler/enqueued': 46, 'scheduler/enqueued/memory': 46, - 'start_time': datetime.datetime(2020, 7, 23, 15, 12, 35, 954622)} -2020-07-23 16:12:58 [scrapy.core.engine] INFO: Spider closed (finished) + 'start_time': datetime.datetime(2020, 7, 28, 21, 48, 10, 730909)} +2020-07-28 22:48:32 [scrapy.core.engine] INFO: Spider closed (finished) diff --git a/output b/output index 8ca763d24..f78c9b503 100644 --- a/output +++ b/output @@ -1,225 +1,20 @@ -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/06/297/-/executive-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Executive Committee Meeting -2020-01-06 11:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/10/315/-/o-hare-noise-compatibility-commission-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -O'Hare Noise Compatibility Commission Meeting -2020-01-10 09:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/16/334/-/governance-committee -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Governance Committee -2020-01-16 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/21/295/-/cancelled-technical-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -CANCELLED Technical Committee Meeting -2020-01-21 10:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/28/293/-/fly-quiet-committee-note-change-of-location -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Fly Quiet Committee *NOTE CHANGE OF LOCATION* -2020-01-28 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/29/294/-/residential-sound-insulation-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Residential Sound Insulation Committee Meeting -2020-01-29 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/10/307/-/executive-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Executive Committee Meeting -2020-02-10 11:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/14/296/-/o-hare-noise-compatibility-commission-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -O'Hare Noise Compatibility Commission Meeting -2020-02-14 09:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/18/336/-/governance-committee -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Governance Committee -2020-02-18 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/25/298/-/fly-quiet-committee -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Fly Quiet Committee -2020-02-25 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/17/322/-/cancelled-technical-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -CANCELLED - Technical Committee Meeting -2020-03-17 10:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/18/335/-/cancelled-governance-committee -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -CANCELLED - Governance Committee -2020-03-18 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/24/299/-/cancelled-fly-quiet-committee -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -CANCELLED - Fly Quiet Committee -2020-03-24 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/30/308/-/executive-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Executive Committee Meeting -2020-03-30 12:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/03/316/-/cancelled-o-hare-noise-compatibility-commission-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -CANCELLED - O'Hare Noise Compatibility Commission Meeting -2020-04-03 09:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/14/323/-/technical-committee-meeting-via-video-or-audio-conference -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Technical Committee Meeting (via video or audio conference) -2020-04-14 10:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/20/337/-/governance-committee-via-video-or-audio-conference -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Governance Committee (via video or audio conference) -2020-04-20 14:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/21/300/-/fly-quiet-committee-via-video-or-audio-conference -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Fly Quiet Committee (via video or audio conference) -2020-04-21 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/27/309/-/executive-committee-meeting-via-video-teleconference -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Executive Committee Meeting (via video/teleconference) -2020-04-27 11:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/01/317/-/cancelled-o-hare-noise-compatibility-commission-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -CANCELLED O'Hare Noise Compatibility Commission Meeting -2020-05-01 09:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/12/338/-/ad-hoc-nominating-committee-via-video-teleconference -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Ad Hoc Nominating Committee (via video/teleconference) -2020-05-12 12:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/13/329/-/residential-sound-insulation-committee-meeting-via-video-teleconference -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Residential Sound Insulation Committee Meeting (via video/teleconference) -2020-05-13 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/324/-/technical-committee-meeting-via-video-teleconference -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Technical Committee Meeting (via video/teleconference) -2020-05-19 10:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/339/-/ad-hoc-governance-committee-via-video-teleconference -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Ad Hoc Governance Committee (via video/teleconference) -2020-05-19 14:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/26/301/-/fly-quiet-committee-via-video-teleconference -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Fly Quiet Committee (via video/teleconference) -2020-05-26 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/01/310/-/executive-committee-meeting-via-video-teleconference -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Executive Committee Meeting (via video/teleconference) -2020-06-01 11:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/05/318/-/o-hare-noise-compatibility-commission-meeting-via-video-teleconference -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -O'Hare Noise Compatibility Commission Meeting (via video/teleconference) -2020-06-05 09:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/23/302/-/fly-quiet-committee-via-video-teleconference -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Fly Quiet Committee (via video/teleconference) -2020-06-23 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/13/311/-/executive-committee-strategic-planning-session -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Executive Committee Strategic Planning Session -2020-08-13 11:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/18/332/-/technical-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Technical Committee Meeting -2020-08-18 10:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/20/303/-/fly-quiet-committee-note-change-of-date -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Fly Quiet Committee *Note Change of Date* -2020-08-20 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/31/313/-/executive-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Executive Committee Meeting -2020-08-31 11:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/04/319/-/o-hare-noise-compatibility-commission-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -O'Hare Noise Compatibility Commission Meeting -2020-09-04 09:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/09/330/-/residential-sound-insulation-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Residential Sound Insulation Committee Meeting -2020-09-09 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/15/325/-/technical-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Technical Committee Meeting -2020-09-15 10:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/22/304/-/fly-quiet-committee -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Fly Quiet Committee -2020-09-22 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/28/312/-/executive-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Executive Committee Meeting -2020-09-28 11:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/02/320/-/o-hare-noise-compatibility-commission-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -O'Hare Noise Compatibility Commission Meeting -2020-10-02 09:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/13/326/-/technical-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Technical Committee Meeting -2020-10-13 10:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/27/305/-/fly-quiet-committee -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Fly Quiet Committee -2020-10-27 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/02/314/-/executive-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Executive Committee Meeting -2020-11-02 11:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/06/321/-/o-hare-noise-compatibility-commission-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -O'Hare Noise Compatibility Commission Meeting -2020-11-06 09:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/11/331/-/residential-sound-insulation-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Residential Sound Insulation Committee Meeting -2020-11-11 10:30:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/17/327/-/technical-committee-meeting -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Technical Committee Meeting -2020-11-17 10:00:00 -================= -https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/12/08/306/-/fly-quiet-committee -['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_body', '_cb_kwargs', '_encoding', '_get_body', '_get_url', '_meta', '_set_body', '_set_url', '_url', 'body', 'callback', 'cb_kwargs', 'cookies', 'copy', 'dont_filter', 'encoding', 'errback', 'flags', 'from_curl', 'headers', 'meta', 'method', 'priority', 'replace', 'url'] -Fly Quiet Committee -2020-12-08 10:30:00 -================= +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] From f7147ad5ab9f33d8b5b17b31d0ff8eb1785aa058 Mon Sep 17 00:00:00 2001 From: Donal O'Shea Date: Wed, 29 Jul 2020 13:35:22 +0100 Subject: [PATCH 05/13] Added location parsing --- .logput.swp | Bin 0 -> 16384 bytes .../spiders/.chi_ohare_noise_2.py.swp | Bin 12288 -> 12288 bytes city_scrapers/spiders/chi_ohare_noise_2.py | 19 ++- logput | 136 +++++++++--------- 4 files changed, 80 insertions(+), 75 deletions(-) create mode 100644 .logput.swp diff --git a/.logput.swp b/.logput.swp new file mode 100644 index 0000000000000000000000000000000000000000..c1d0ea67b3e864c0ea3535580cab53772de3fef1 GIT binary patch literal 16384 zcmeHN&yVXy9UofCk3Jqn^acp#!6Av*OdMx7yDvgW*=+jWmd$#VIHj;K*yC1youtNE|pJA#th134z1~zGFMT{IW|^feAAB075_Z?hMc$UPd2z4?-S`oPdc->L}***XL>A{S%Qy z`Kt?q6^~x^Pk^@eK{=)mpd`#q7txSJd)S9sW}<}jliY|+(tFCYACHw zeEbf6`h)#V4QP3dfJQ(gpb^jrXaqC@8Uc-fM&Q2~0U6&yUjzRi%lc5u?(fLmfBEG(H4pT-C3?sJ^Mo=8j9x9rwYago_~)5_9U(NMhFs0vtF( zmKw-3Orvb$@d9U;xbN2_N~GhZg;y@w}E@H?@^8^=Zs_ctih#1 z_|Xu5>R#K%mr}-}QK^i_W5O;SP9x?EN*EtjLP{mbi83@^@xcX7W9mraQR(BmU>W~H$2dD@QV=u$|N}OkcqQ zijz4QsinjsTs3!z0e{s--7srwrs1MzOZMS&A|V|qW-ZKSqk&^*NChrB5@+Q~=tre3 zoUU#Up8Ar8Gl`^}NZiY>wu`rK(S``l@eD8znD16VVHbkdM; zl07J#-Pl^_dtN}t5L9N}Ye&wxT5QT)JU81wxR3=fk;JNnqJU@<%S&>g{&(i~py3-- zMmz|hlc3h;!BJ9LQr)^qH48?hn+Bz~s>UuZ1oVkm>3v1*^!mQ3;G2YHavw@<6`)sC z9}V@3Nfge($b*|=h!+B431E+nqkuWEAuRDpG6%`QoYzxxav9|HYRZ4uP$tvF{}WYO z@qa!>>(x2+eAwV5pq&;rQC4lkJ`;1bo3SYIptY!PVruS32X;0Xc`&&=*On&Cb^VZh z3Y~!e8#SARCx}j@o0RN{+(dmOD2EskNz#W>QJ=1lneH zR#{#KOR}@bO^(GI&Dwu^2rbO6OD-1?XCb$KTRd@u7&GoQuxsq??wIvz%`h)^sf6^PFLUb{PJ-fJJ*g$6FPKnC}+?{D!be4tAM7KbV=4w*;K2tI;@FoFuF z*oizWoGHGfLBKFHW zX`7FzVjQx3XK#?I`J%Wqszb-5a!zoBK!Y0}y`32}EM3Wpz5ufLXme!HgYiF$|X?@G;C-Cg3w!q=RakJBY#8RT$?Aw-oziZj{QG3v{n_YWw z&^~Iau2qSl^j9Q0&FAO*8e}wE=*z1Diyo!O+%)T8*dV*+vn|THg6$4AE*fD$WpcW> zdCtLkA`k@D+B{$HCubK<9al0qG{~_!2zbPgB;}B*5uwf(GUJn8QtPJDHzq4fEv1Rk za}X9)4%ooKBn#_3d+CZiZ>Hj8z-TD~Mklh7K1Y zONW@ToOhOxI{$wM&iW74O8_|kXFm%k^`EF``qBt!1T+E~0gZr0KqH_L& z)SLAn#04)Zo;(O1lz^xgsY0m;g4TmnJSemZYL&Jpt>{0IL=O)9W@m@@-pre+(W%ka zvF>C053;^+4`H+reN1hSpO4>dop;ntSjo=5;A;hdme*)D~0>=Ah zqSx>M?!$Gs1}f}@pKhXc_yN!0Hs~-6Ya5AH;T6n*4VPgbbb%MvT*!k-7v(97#UM0* z6FzSs`UFql3gjUH5s=_f6VXjL1w-J1g+`(oC_o&Jz#$lf0oV+S4Mfv$0mh*pzB=WG$L7IcWhao7c4YKh*!0^9==Mj!^ep$RTIh|Yos zzSj`F?Z7k-FX0YM!wAHn7u>KS6$HSaH{qN+x;J7(*?t@-l0vnLiJ_RsLLqo&YK zFoS2gVR9xkmFG$uN!?)9IA;mP~N>a@Q*G>;Ooecru>{5wU&aQv-`RH}*H29f6|VhxXBU3ZEa2-huqYB@uMZRJaOSp##T*5hwpbJiX@bmOLc!D`pz9Qw=c(tuqKaL-? zXj+%3|AiJCAI~OoIjvvi%9?3yw&r!erMCsGoB9zu)wZB?Ce1`DG@Xf=*8+N`$4pF{ zfeyVR#F>r7$uIYghH_>$nF&}%`_!MlgZ5&T6%M)^E2D0t<1sUtHp1#i+DO=Sos){Y Q_1_Nma (referer: None) -2020-07-28 22:48:12 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-07-28 22:48:13 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:14 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:14 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:15 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:15 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:17 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:17 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:17 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:21 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:21 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:22 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:22 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:22 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:23 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:23 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:23 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:24 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:24 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:25 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:25 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:25 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:26 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:26 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:28 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:28 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:30 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:30 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-28 22:48:32 [scrapy.core.engine] INFO: Closing spider (finished) -2020-07-28 22:48:32 [scrapy.statscollectors] INFO: Dumping Scrapy stats: +2020-07-29 13:33:37 [scrapy.core.engine] INFO: Spider opened +2020-07-29 13:33:37 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) +2020-07-29 13:33:37 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 +2020-07-29 13:33:38 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-07-29 13:33:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-07-29 13:33:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:54 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:54 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:54 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:33:55 [scrapy.core.engine] INFO: Closing spider (finished) +2020-07-29 13:33:55 [scrapy.statscollectors] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 20268, 'downloader/request_count': 47, 'downloader/request_method_count/GET': 47, - 'downloader/response_bytes': 331892, + 'downloader/response_bytes': 315354, 'downloader/response_count': 47, 'downloader/response_status_count/200': 47, - 'elapsed_time_seconds': 21.846181, + 'elapsed_time_seconds': 17.954571, 'finish_reason': 'finished', - 'finish_time': datetime.datetime(2020, 7, 28, 21, 48, 32, 577090), + 'finish_time': datetime.datetime(2020, 7, 29, 12, 33, 55, 764150), 'log_count/DEBUG': 47, 'log_count/INFO': 10, - 'memusage/max': 186003456, - 'memusage/startup': 186003456, + 'memusage/max': 185360384, + 'memusage/startup': 185360384, 'request_depth_max': 1, 'response_received_count': 47, 'robotstxt/request_count': 1, @@ -115,5 +115,5 @@ 'scheduler/dequeued/memory': 46, 'scheduler/enqueued': 46, 'scheduler/enqueued/memory': 46, - 'start_time': datetime.datetime(2020, 7, 28, 21, 48, 10, 730909)} -2020-07-28 22:48:32 [scrapy.core.engine] INFO: Spider closed (finished) + 'start_time': datetime.datetime(2020, 7, 29, 12, 33, 37, 809579)} +2020-07-29 13:33:55 [scrapy.core.engine] INFO: Spider closed (finished) From c6d69e00dc5c8b573880ad3850e1ca813c3f870e Mon Sep 17 00:00:00 2001 From: Donal O'Shea Date: Wed, 29 Jul 2020 14:01:29 +0100 Subject: [PATCH 06/13] Completed data collection from basic page. Next item on the agenda is to unify data from other urls to obtain minutes and agenda urls --- .logput.swp | Bin 16384 -> 16384 bytes .../spiders/.chi_ohare_noise_2.py.swp | Bin 12288 -> 12288 bytes city_scrapers/spiders/chi_ohare_noise_2.py | 32 +- logput | 1533 ++++++++++++++++- 4 files changed, 1480 insertions(+), 85 deletions(-) diff --git a/.logput.swp b/.logput.swp index c1d0ea67b3e864c0ea3535580cab53772de3fef1..5392687dff0f90b3eb02fa0716fb4eaa92e6c54d 100644 GIT binary patch literal 16384 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 Y-Ro{_hr6(}Vv>8Cm+#{8e@Gku0TF%=i2wiq delta 789 zcmZo@U~Fh$+`uHj$UT`^K$Y{ve+ZD9Y$zaJe;meRfPf$<%?PEBLFMJ4`~o!jqiFK| zX!1wU%wLBp&&6;UX29f)K<6BS@u13Hqbg@Oh$hbkbtlZZ2hij-(d73-6t{yV41v5UV3q-pXz&PBQ zh;HE&wjcn0kl;}wx`AuhhZqDQAkj9N5!`nYxnKe$IO`xff zIreY-&1N<3E3_(9R%_e ziHbWcp50zyktfBB91=xY9%%J9yY!^0M>So^a8%#O)57S9`2SYuik{|Cji=Xq@qAL% Vc)YpdY8~W8->PS{R`n#?zW_RFcz^%^ delta 560 zcmYMuJ4nM&6b9fEt=4x_QBjJJHiJzn;tTOX2bY4Ni;9Axv9?zYq)kcUps3YN9V#W@ z>g28z92J*>V|A-I`dECRo0EU5)C1q;aL<1qyGy%EEz8|AV-vz)R}Z0hq8H7p>?!9h z-!3kiar0lU`Va=6-0w7MyM?3VaV=32A`k=)u4;%*VG}}72l;BEYe<6v(=Z7mFbqxb zSVeRI`>+N>@a`mfgDj*W2|F+a4NgkZM4xP>z~fJIn`A@y>i?URSF&dYsRQ?l$Sy;Qv33L93?wA2_YT$7VWk!lQ#RF_h= c5@^TXRzPeOi!TWNVqBua`9g`AlR((<1I==EH~;_u diff --git a/city_scrapers/spiders/chi_ohare_noise_2.py b/city_scrapers/spiders/chi_ohare_noise_2.py index 0fc7e0f07..4909d1c6c 100644 --- a/city_scrapers/spiders/chi_ohare_noise_2.py +++ b/city_scrapers/spiders/chi_ohare_noise_2.py @@ -32,23 +32,21 @@ def parse(self, response): #yield meeting def _parse_subpage(self, response): - #stime = self._parse_start(response) - #print (stime) -# meeting = Meeting( -# self._parse_title(response), -# description=self._parse_description(response), -# classification=self._parse_classification(response), -# start=stime, -# end=stime+timedelta(hours=1), -# all_day=self._parse_all_day(response), -# time_notes=self._parse_time_notes(response), - location=self._parse_location(response), - print(location) -# links=self._parse_links(response), -# source=self._parse_source(response), -# ) -# -# yield meeting + stime = self._parse_start(response) + meeting = Meeting( + title=self._parse_title(response), + description=self._parse_description(response), + classification=self._parse_classification(response), + start=stime, + end=stime+timedelta(hours=1), + all_day=self._parse_all_day(response), + time_notes=self._parse_time_notes(response), + location=self._parse_location(response), + links=self._parse_links(response), + source=response.url, + ) + + yield meeting def _parse_title(self, response): """Parse or generate meeting title.""" diff --git a/logput b/logput index c67b11a53..85d170a2c 100644 --- a/logput +++ b/logput @@ -1,7 +1,7 @@ -2020-07-29 13:33:37 [scrapy.utils.log] INFO: Scrapy 2.1.0 started (bot: city_scrapers) -2020-07-29 13:33:37 [scrapy.utils.log] INFO: Versions: lxml 4.5.1.0, libxml2 2.9.10, cssselect 1.1.0, parsel 1.6.0, w3lib 1.22.0, Twisted 20.3.0, Python 3.8.5 (default, Jul 21 2020, 10:48:26) - [Clang 11.0.3 (clang-1103.0.32.62)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1g 21 Apr 2020), cryptography 2.9.2, Platform macOS-10.15.5-x86_64-i386-64bit -2020-07-29 13:33:37 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor -2020-07-29 13:33:37 [scrapy.crawler] INFO: Overridden settings: +2020-07-29 13:57:27 [scrapy.utils.log] INFO: Scrapy 2.1.0 started (bot: city_scrapers) +2020-07-29 13:57:27 [scrapy.utils.log] INFO: Versions: lxml 4.5.1.0, libxml2 2.9.10, cssselect 1.1.0, parsel 1.6.0, w3lib 1.22.0, Twisted 20.3.0, Python 3.8.5 (default, Jul 21 2020, 10:48:26) - [Clang 11.0.3 (clang-1103.0.32.62)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1g 21 Apr 2020), cryptography 2.9.2, Platform macOS-10.15.5-x86_64-i386-64bit +2020-07-29 13:57:27 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor +2020-07-29 13:57:27 [scrapy.crawler] INFO: Overridden settings: {'AUTOTHROTTLE_ENABLED': True, 'AUTOTHROTTLE_MAX_DELAY': 30.0, 'AUTOTHROTTLE_START_DELAY': 1.0, @@ -14,14 +14,14 @@ 'SPIDER_MODULES': ['city_scrapers.spiders'], 'USER_AGENT': 'City Scrapers [development mode]. Learn more and say hello at ' 'https://cityscrapers.org/'} -2020-07-29 13:33:37 [scrapy.extensions.telnet] INFO: Telnet Password: fda5b1311b9d578a -2020-07-29 13:33:37 [scrapy.middleware] INFO: Enabled extensions: +2020-07-29 13:57:27 [scrapy.extensions.telnet] INFO: Telnet Password: 8c47313b226ab02c +2020-07-29 13:57:27 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.memusage.MemoryUsage', 'scrapy.extensions.logstats.LogStats', 'scrapy.extensions.throttle.AutoThrottle'] -2020-07-29 13:33:37 [scrapy.middleware] INFO: Enabled downloader middlewares: +2020-07-29 13:57:27 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', @@ -33,79 +33,1475 @@ 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] -2020-07-29 13:33:37 [scrapy.middleware] INFO: Enabled spider middlewares: +2020-07-29 13:57:27 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] -2020-07-29 13:33:37 [scrapy.middleware] INFO: Enabled item pipelines: +2020-07-29 13:57:27 [scrapy.middleware] INFO: Enabled item pipelines: ['city_scrapers_core.pipelines.MeetingPipeline'] -2020-07-29 13:33:37 [scrapy.core.engine] INFO: Spider opened -2020-07-29 13:33:37 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) -2020-07-29 13:33:37 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 -2020-07-29 13:33:38 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-07-29 13:33:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-07-29 13:33:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:54 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:54 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:54 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:33:55 [scrapy.core.engine] INFO: Closing spider (finished) -2020-07-29 13:33:55 [scrapy.statscollectors] INFO: Dumping Scrapy stats: +2020-07-29 13:57:27 [scrapy.core.engine] INFO: Spider opened +2020-07-29 13:57:27 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) +2020-07-29 13:57:27 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 +2020-07-29 13:57:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-07-29 13:57:28 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-07-29 13:57:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:29 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:30 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:30 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:30 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:30 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:31 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:31 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:31 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:32 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:32 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:32 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:33 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:33 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:33 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:33 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:34 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:34 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:34 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:34 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:35 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:35 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:36 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:36 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:37 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:37 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:37 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:37 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:38 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:38 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:38 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:38 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:39 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:39 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:40 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:40 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:40 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:41 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:41 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:41 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:42 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:42 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:42 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:43 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:43 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:43 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:44 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:44 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:44 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:45 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:45 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:45 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:46 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:46 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:47 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:47 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:47 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-07-29 13:57:48 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +Traceback (most recent call last): + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback + yield next(it) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ + return next(self.data) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output + for x in result: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in + return (_set_referer(r) for r in result or ()) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in + return (r for r in result or () if _filter(r)) + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable + for r in iterable: + File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage + meeting = Meeting( + File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ + for k, v in dict(*args, **kwargs).items(): +ValueError: dictionary update sequence element #0 has length 1; 2 is required +2020-07-29 13:57:48 [scrapy.core.engine] INFO: Closing spider (finished) +2020-07-29 13:57:48 [scrapy.statscollectors] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 20268, 'downloader/request_count': 47, 'downloader/request_method_count/GET': 47, - 'downloader/response_bytes': 315354, + 'downloader/response_bytes': 331974, 'downloader/response_count': 47, 'downloader/response_status_count/200': 47, - 'elapsed_time_seconds': 17.954571, + 'elapsed_time_seconds': 21.093228, 'finish_reason': 'finished', - 'finish_time': datetime.datetime(2020, 7, 29, 12, 33, 55, 764150), + 'finish_time': datetime.datetime(2020, 7, 29, 12, 57, 48, 350735), 'log_count/DEBUG': 47, + 'log_count/ERROR': 45, 'log_count/INFO': 10, - 'memusage/max': 185360384, - 'memusage/startup': 185360384, + 'memusage/max': 185815040, + 'memusage/startup': 185815040, 'request_depth_max': 1, 'response_received_count': 47, 'robotstxt/request_count': 1, @@ -115,5 +1511,6 @@ 'scheduler/dequeued/memory': 46, 'scheduler/enqueued': 46, 'scheduler/enqueued/memory': 46, - 'start_time': datetime.datetime(2020, 7, 29, 12, 33, 37, 809579)} -2020-07-29 13:33:55 [scrapy.core.engine] INFO: Spider closed (finished) + 'spider_exceptions/ValueError': 45, + 'start_time': datetime.datetime(2020, 7, 29, 12, 57, 27, 257507)} +2020-07-29 13:57:48 [scrapy.core.engine] INFO: Spider closed (finished) From ec1a12e1fe501d0f615be57cf5cc6bc73dd26420 Mon Sep 17 00:00:00 2001 From: Donal O'Shea Date: Sat, 8 Aug 2020 12:46:14 +0100 Subject: [PATCH 07/13] Finished the scraper ohare1. Next item is to unify the data from both scrapers --- .logput.swp | Bin 16384 -> 16384 bytes city_scrapers/spiders/.chi_ohare_noise.py.swp | Bin 0 -> 12288 bytes .../spiders/.chi_ohare_noise_2.py.swp | Bin 12288 -> 12288 bytes city_scrapers/spiders/chi_ohare_noise.py | 52 +- logput | 1511 +---------------- 5 files changed, 45 insertions(+), 1518 deletions(-) create mode 100644 city_scrapers/spiders/.chi_ohare_noise.py.swp diff --git a/.logput.swp b/.logput.swp index 5392687dff0f90b3eb02fa0716fb4eaa92e6c54d..5a703b38c302a2c0444a59d1f3ad9125b74315c7 100644 GIT binary patch literal 16384 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 Y-Ro{_hr6(}Vv>8Cm+#{8e@Gku0TF%=i2wiq diff --git a/city_scrapers/spiders/.chi_ohare_noise.py.swp b/city_scrapers/spiders/.chi_ohare_noise.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..fce37101f899406b946b95d842509445db485766 GIT binary patch literal 12288 zcmeI2O>Y}T7{{kbKnny~$^{{$VcW>I67MEOLRC=Imq4MAHi!TcM3Ft&9ot*%on>a6 z)a6ZZDF-BkcsT>&02h$BfYg2m&fEZregbYF;6Jmweyg3Py;03dzwFM-^XxPKnR)Ca zv$gQb*>m)`zesQ$BxLO)zc%~XFXYO7ghV1?ZJ}D6na1hYYrGxZpo=wrXW%f1`1ZQ) zHX1=H#RVQ}6@;; zkI#_Dk1Z~kx+C6W^zef(_nX~=Q@|YJNWdzX0bkui$d{lC&Vw27!vR84a1N}3=fP3%cRrr0xL*O6 z!7BJ3d`~7yakhNWVd8k7(v15LYhvywNDW`Q_J&+v5$Cz)>1PaH6^;zRGDko zZB{c@Ibl+Ze#5pCx=otm(jJdvA8)uaBU0~U8b?-o!mi5M;j-@HdAWZi!Ow< zRK_9qHiIbM4!Z529S5vb>BlxvQR~%5lkGMnsBOsgG_M?0mF8DI-U!)K#~tn~EmQMQ zwo!&kl|4U;Ohny~OKMbve7U9*<(#Lb+0%43ny0g`P6}UXCN(WyNtvRICM@3OgF3Ng zj;~G{mNgz4mRTZWgBc4w#Mqib_HGz@-_Jy$I~)onO=_3cq{wW;l*mkky%;BYY3^na zv}qd5u_>9$q|uNso9*BaWmfEvVnJ5siS0S`!%q2#O|}TervG|FE9!`0CbKb|@E$wT zk?z^pCv-1VTc+nS{mT8Q%|133W*--W^6iS#(#ND#+p*GBDRvgT3Z2`%%c6&MP$*Gs z22)NrkCfkUT4}MQ$*FE}TF+&*q1Wg8Wjk_|xehT|x+Nk-wV;hy)1LWkv&W~g5C$_? zx1W4Cp8D{Mr)>E`@=eu5v+YWUok|Id6W3By!)Mo}@!>J+pnAEZ1wX{yvQV{Iy z?D+P~c6MZ2$Y#K{L|0cu5{3c8H=>BCDodhjCr-MWD=*8EW^Z2-35PT9REHzquwbQy zpG}cv5MvtlOmkjM*GkXgY&bn{&W6(!(Lpwiw_@bDo+))=rDBm}#tG|K&*A8aa*x;? zN8xeJoHMts*6r!@@(TQ{=jYS2Dx35hQgo;}yxu>qUJHdpe#*|Q)3}ogB$4Z_$uvu| t)Kp=YFUF~zLww)VEYW>~^J_2FR#s1~ub(}0_UWfcX4p?*c{D|t{0D5jpo#zh literal 0 HcmV?d00001 diff --git a/city_scrapers/spiders/.chi_ohare_noise_2.py.swp b/city_scrapers/spiders/.chi_ohare_noise_2.py.swp index 9d81d5b7c58c3517c95ca4e6e61cc5f88e12f8d3..0c1039cf1765c97ee279f9a870deb850b3a215ac 100644 GIT binary patch delta 47 zcmZojXh@hK!L*xaqtsPq#?Z|lm^a8WNi$8nSUFihNdkx^C%;wXo_tGPbaRf<6kY(7 CEf9(T delta 106 zcmZojXh@hK!6d`6QR*r)Bg5to%o}961eh2YJ~1*dTw$DeQG-cAVY0E3inW45QEEwP eQ67*gF34BF0LZd=#i@FwFcn1#n~jyu@&W)bmK{t0 diff --git a/city_scrapers/spiders/chi_ohare_noise.py b/city_scrapers/spiders/chi_ohare_noise.py index 30b068c86..45db6cbba 100644 --- a/city_scrapers/spiders/chi_ohare_noise.py +++ b/city_scrapers/spiders/chi_ohare_noise.py @@ -1,3 +1,5 @@ +from datetime import datetime + from city_scrapers_core.constants import NOT_CLASSIFIED from city_scrapers_core.items import Meeting from city_scrapers_core.spiders import CityScrapersSpider @@ -19,60 +21,28 @@ def parse(self, response): for item in response.css("tr.cat-list-row0") + response.css("tr.cat-list-row1"): meeting = Meeting( title=self._parse_title(item), - description=self._parse_description(item), - classification=self._parse_classification(item), start=self._parse_start(item), - end=self._parse_end(item), - all_day=self._parse_all_day(item), - time_notes=self._parse_time_notes(item), - location=self._parse_location(item), - links=self._parse_links(item), + links=self._parse_links(item, response), source=self._parse_source(response), ) -# meeting["status"] = self._get_status(meeting) -# meeting["id"] = self._get_id(meeting) - - #yield meeting + yield meeting def _parse_title(self, item): """Parse or generate meeting title.""" return item.css(".djc_category span").xpath("text()").extract() - def _parse_description(self, item): - """Parse or generate meeting description.""" - return "" - - def _parse_classification(self, item): - """Parse or generate classification from allowed options.""" - return NOT_CLASSIFIED - def _parse_start(self, item): """Parse start datetime as a naive datetime object.""" - return None - - def _parse_end(self, item): - """Parse end datetime as a naive datetime object. Added by pipeline if None""" - return None + return datetime.strptime(item.css(".djc_producer span").xpath("text()").extract()[0], '%B %d, %Y') - def _parse_time_notes(self, item): - """Parse any additional notes on the timing of the meeting""" - return "" - - def _parse_all_day(self, item): - """Parse or generate all-day status. Defaults to False.""" - return False - - def _parse_location(self, item): - """Parse or generate location.""" - return { - "address": "", - "name": "", - } - - def _parse_links(self, item): + def _parse_links(self, item, response): """Parse or generate links.""" - return [{"href": "", "title": ""}] + links = item.xpath('td[@class="djc_price"]/div/ul/li/a') + return [{"href": response.url+'?'+link.xpath("@href").extract()[0].split('?')[1], + "title": link.xpath("span/text()").extract()[0]} + for link in links] + def _parse_source(self, response): """Parse or generate source.""" diff --git a/logput b/logput index 85d170a2c..dce1b1485 100644 --- a/logput +++ b/logput @@ -1,7 +1,7 @@ -2020-07-29 13:57:27 [scrapy.utils.log] INFO: Scrapy 2.1.0 started (bot: city_scrapers) -2020-07-29 13:57:27 [scrapy.utils.log] INFO: Versions: lxml 4.5.1.0, libxml2 2.9.10, cssselect 1.1.0, parsel 1.6.0, w3lib 1.22.0, Twisted 20.3.0, Python 3.8.5 (default, Jul 21 2020, 10:48:26) - [Clang 11.0.3 (clang-1103.0.32.62)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1g 21 Apr 2020), cryptography 2.9.2, Platform macOS-10.15.5-x86_64-i386-64bit -2020-07-29 13:57:27 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor -2020-07-29 13:57:27 [scrapy.crawler] INFO: Overridden settings: +2020-08-08 12:39:35 [scrapy.utils.log] INFO: Scrapy 2.1.0 started (bot: city_scrapers) +2020-08-08 12:39:35 [scrapy.utils.log] INFO: Versions: lxml 4.5.1.0, libxml2 2.9.10, cssselect 1.1.0, parsel 1.6.0, w3lib 1.22.0, Twisted 20.3.0, Python 3.8.5 (default, Jul 21 2020, 10:48:26) - [Clang 11.0.3 (clang-1103.0.32.62)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1g 21 Apr 2020), cryptography 2.9.2, Platform macOS-10.15.5-x86_64-i386-64bit +2020-08-08 12:39:35 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor +2020-08-08 12:39:35 [scrapy.crawler] INFO: Overridden settings: {'AUTOTHROTTLE_ENABLED': True, 'AUTOTHROTTLE_MAX_DELAY': 30.0, 'AUTOTHROTTLE_START_DELAY': 1.0, @@ -14,14 +14,14 @@ 'SPIDER_MODULES': ['city_scrapers.spiders'], 'USER_AGENT': 'City Scrapers [development mode]. Learn more and say hello at ' 'https://cityscrapers.org/'} -2020-07-29 13:57:27 [scrapy.extensions.telnet] INFO: Telnet Password: 8c47313b226ab02c -2020-07-29 13:57:27 [scrapy.middleware] INFO: Enabled extensions: +2020-08-08 12:39:35 [scrapy.extensions.telnet] INFO: Telnet Password: 36ae5455244a74bc +2020-08-08 12:39:35 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.memusage.MemoryUsage', 'scrapy.extensions.logstats.LogStats', 'scrapy.extensions.throttle.AutoThrottle'] -2020-07-29 13:57:27 [scrapy.middleware] INFO: Enabled downloader middlewares: +2020-08-08 12:39:35 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', @@ -33,1484 +33,41 @@ 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] -2020-07-29 13:57:27 [scrapy.middleware] INFO: Enabled spider middlewares: +2020-08-08 12:39:35 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] -2020-07-29 13:57:27 [scrapy.middleware] INFO: Enabled item pipelines: +2020-08-08 12:39:35 [scrapy.middleware] INFO: Enabled item pipelines: ['city_scrapers_core.pipelines.MeetingPipeline'] -2020-07-29 13:57:27 [scrapy.core.engine] INFO: Spider opened -2020-07-29 13:57:27 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) -2020-07-29 13:57:27 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 -2020-07-29 13:57:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-07-29 13:57:28 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-07-29 13:57:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:29 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:30 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:30 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:30 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:30 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:31 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:31 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:31 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:32 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:32 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:32 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:33 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:33 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:33 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:33 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:34 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:34 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:34 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:34 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:35 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:35 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:36 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:36 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:37 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:37 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:37 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:37 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:38 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:38 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:38 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:38 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:39 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:39 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:40 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:40 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:40 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:41 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:41 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:41 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:42 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:42 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:42 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:43 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:43 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:43 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:44 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:44 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:44 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:45 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:45 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:45 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:46 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:46 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:47 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:47 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:47 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-07-29 13:57:48 [scrapy.core.scraper] ERROR: Spider error processing (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -Traceback (most recent call last): - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/defer.py", line 117, in iter_errback - yield next(it) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/utils/python.py", line 345, in __next__ - return next(self.data) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/offsite.py", line 29, in process_spider_output - for x in result: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/referer.py", line 338, in - return (_set_referer(r) for r in result or ()) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/urllength.py", line 37, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/spidermiddlewares/depth.py", line 58, in - return (r for r in result or () if _filter(r)) - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/core/spidermw.py", line 64, in _evaluate_iterable - for r in iterable: - File "/Users/donaloshea/devStuff/projects/city-scrapers/city_scrapers/spiders/chi_ohare_noise_2.py", line 36, in _parse_subpage - meeting = Meeting( - File "/Users/donaloshea/.local/share/virtualenvs/city-scrapers-eUp1nLp2/lib/python3.8/site-packages/scrapy/item.py", line 79, in __init__ - for k, v in dict(*args, **kwargs).items(): -ValueError: dictionary update sequence element #0 has length 1; 2 is required -2020-07-29 13:57:48 [scrapy.core.engine] INFO: Closing spider (finished) -2020-07-29 13:57:48 [scrapy.statscollectors] INFO: Dumping Scrapy stats: -{'downloader/request_bytes': 20268, - 'downloader/request_count': 47, - 'downloader/request_method_count/GET': 47, - 'downloader/response_bytes': 331974, - 'downloader/response_count': 47, - 'downloader/response_status_count/200': 47, - 'elapsed_time_seconds': 21.093228, +2020-08-08 12:39:35 [scrapy.core.engine] INFO: Spider opened +2020-08-08 12:39:35 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) +2020-08-08 12:39:35 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 +2020-08-08 12:39:36 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-08-08 12:39:37 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-08-08 12:39:37 [scrapy.core.engine] INFO: Closing spider (finished) +2020-08-08 12:39:37 [scrapy.statscollectors] INFO: Dumping Scrapy stats: +{'downloader/request_bytes': 582, + 'downloader/request_count': 2, + 'downloader/request_method_count/GET': 2, + 'downloader/response_bytes': 10405, + 'downloader/response_count': 2, + 'downloader/response_status_count/200': 2, + 'elapsed_time_seconds': 2.01373, 'finish_reason': 'finished', - 'finish_time': datetime.datetime(2020, 7, 29, 12, 57, 48, 350735), - 'log_count/DEBUG': 47, - 'log_count/ERROR': 45, + 'finish_time': datetime.datetime(2020, 8, 8, 11, 39, 37, 663806), + 'log_count/DEBUG': 2, 'log_count/INFO': 10, - 'memusage/max': 185815040, - 'memusage/startup': 185815040, - 'request_depth_max': 1, - 'response_received_count': 47, + 'memusage/max': 185888768, + 'memusage/startup': 185888768, + 'response_received_count': 2, 'robotstxt/request_count': 1, 'robotstxt/response_count': 1, 'robotstxt/response_status_count/200': 1, - 'scheduler/dequeued': 46, - 'scheduler/dequeued/memory': 46, - 'scheduler/enqueued': 46, - 'scheduler/enqueued/memory': 46, - 'spider_exceptions/ValueError': 45, - 'start_time': datetime.datetime(2020, 7, 29, 12, 57, 27, 257507)} -2020-07-29 13:57:48 [scrapy.core.engine] INFO: Spider closed (finished) + 'scheduler/dequeued': 1, + 'scheduler/dequeued/memory': 1, + 'scheduler/enqueued': 1, + 'scheduler/enqueued/memory': 1, + 'start_time': datetime.datetime(2020, 8, 8, 11, 39, 35, 650076)} +2020-08-08 12:39:37 [scrapy.core.engine] INFO: Spider closed (finished) From 58fb97bada35d58dff6a27440de742b2476749d5 Mon Sep 17 00:00:00 2001 From: Donal O'Shea Date: Wed, 19 Aug 2020 20:02:21 +0100 Subject: [PATCH 08/13] Finished merging scrapers. Was unable to mesh data on crawl, should ideally be tried in database. Fixed formatting with flake8, isort and black. Begin making tests --- .logput.swp | Bin 16384 -> 0 bytes city_scrapers/spiders/.chi_ohare_noise.py.swp | Bin 12288 -> 20480 bytes city_scrapers/spiders/chi_ohare_noise.py | 185 +++- city_scrapers/spiders/chi_ohare_noise_2.py | 98 -- logput | 836 +++++++++++++++++- .../.test_chi_ohare_noise.py.swp | Bin 12288 -> 12288 bytes tests/files/chi_ohare_noise.html | 774 ---------------- .../chi_ohare_noise/.chi_ohare_noise.html.swp | Bin 0 -> 73728 bytes .../chi_ohare_noise/chi_ohare_noise.html | 592 +++++++++++++ .../chi_ohare_noise_meetings_sub_1.html | 247 ++++++ .../chi_ohare_noise_meetings_sub_2.html | 241 +++++ .../chi_ohare_noise_meetings_sub_3.html | 236 +++++ .../chi_ohare_noise_meetings_sub_4.html | 236 +++++ .../chi_ohare_noise_meetings_sub_5.html | 236 +++++ .../chi_ohare_noise_minutes_agenda.html} | 0 tests/test_chi_ohare_noise.py | 12 +- tests/test_chi_ohare_noise_2.py | 86 -- 17 files changed, 2752 insertions(+), 1027 deletions(-) delete mode 100644 .logput.swp delete mode 100644 city_scrapers/spiders/chi_ohare_noise_2.py rename city_scrapers/spiders/.chi_ohare_noise_2.py.swp => tests/.test_chi_ohare_noise.py.swp (64%) delete mode 100644 tests/files/chi_ohare_noise.html create mode 100644 tests/files/chi_ohare_noise/.chi_ohare_noise.html.swp create mode 100644 tests/files/chi_ohare_noise/chi_ohare_noise.html create mode 100644 tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_1.html create mode 100644 tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_2.html create mode 100644 tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_3.html create mode 100644 tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_4.html create mode 100644 tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_5.html rename tests/files/{chi_ohare_noise_2.html => chi_ohare_noise/chi_ohare_noise_minutes_agenda.html} (100%) delete mode 100644 tests/test_chi_ohare_noise_2.py diff --git a/.logput.swp b/.logput.swp deleted file mode 100644 index 5a703b38c302a2c0444a59d1f3ad9125b74315c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 BxSs$3 delta 964 zcmYk(%TH556bIl_1l!Vgpq3VqOKG{S&}vCq`T(k!NYGZ01fwCfpj>oe+S*bVDgoU9 zMxuDoH5eDN(FhAkaN%E|MprI~NJ8V%g*%_Wi*0q1FZX2T&N*jhrk51cBen~N&-BHG zpw~wjMxy?E-lX&4N7~T7uzfKY6f}kT3V9L3$0nnNSDN%|8RLD!!n^PTp>m2;L|Y*5 z-pzt=+d%XgR^TS|z)?5?Citc&dI^u97mkAn^-$0e?Z5)uhHKCOzqCYeVF@llJ2uZ)WGk(L{DKBW?&GkP^dyNxDHV`QMIP1+}Xo#{0)xw{pR6b!9`D{waO1Vs0-fNH(l@?L3TtpM7;T4y*oPRE;L4I|4 z9ZmdK*UEQ-)usCX4rJhEmu>gAzuU|0@qvJY`vdlh1o3Pj>X{VEO%yvEzG1(dmB#Ji zzrCh%k{7MEicztZKLx~U1nyy9qD>&4?C4{6?>^q@(DD0j3#)=Q{_3=HFxaINojrnc ztW9v96Wzr6mSa5BVqta2$PJ;WLcT&LzmDnor^~{tp;~Tp>v_S^$REOfo^;o-Bhtk4 z2bDY!aq(t<9WO>|IMG_qp>8vqIz={j8cjaCJ6vubcSxM_Sa{Ae#M>UfNuH1|SbmV* m_h6sPqR&l?W+#$3QBLR*hWWgIKl}WRiUdpERc=4DuAo1#Nab(< diff --git a/city_scrapers/spiders/chi_ohare_noise.py b/city_scrapers/spiders/chi_ohare_noise.py index 45db6cbba..de869f44f 100644 --- a/city_scrapers/spiders/chi_ohare_noise.py +++ b/city_scrapers/spiders/chi_ohare_noise.py @@ -1,49 +1,176 @@ -from datetime import datetime +import re +from datetime import datetime, timedelta from city_scrapers_core.constants import NOT_CLASSIFIED from city_scrapers_core.items import Meeting from city_scrapers_core.spiders import CityScrapersSpider +from scrapy import Request class ChiOhareNoiseSpider(CityScrapersSpider): name = "chi_ohare_noise" agency = "Chicago O'Hare Noise Compatibility Commission" timezone = "America/Chicago" - start_urls = ["https://www.oharenoise.org/about-oncc/agendas-and-minutes"] - def parse(self, response): - """ - `parse` should always `yield` Meeting items. + class ChiOhareNoiseSubSpider1: + def parse(self, response): + """ + `parse` should always `yield` Meeting items. - Change the `_parse_title`, `_parse_start`, etc methods to fit your scraping - needs. - """ - for item in response.css("tr.cat-list-row0") + response.css("tr.cat-list-row1"): + Change the `_parse_title`, `_parse_start`, etc methods to fit your scraping + needs. + """ + for item in response.css(".ev_td_li"): + surl = self._parse_url(item) + yield Request(url=response.urljoin(surl), callback=self._parse_details) + + next_page = response.xpath("//div[@class='previousmonth']/a/@href").get() + if next_page is not None: + yield response.follow(response.urljoin(next_page), callback=self.parse) + + def _parse_details(self, response): + stime = self._parse_start(response) meeting = Meeting( - title=self._parse_title(item), - start=self._parse_start(item), - links=self._parse_links(item, response), - source=self._parse_source(response), + title=self._parse_title(response), + description=self._parse_description(response), + classification=self._parse_classification(response), + start=stime, + end=stime + timedelta(hours=1), + all_day=self._parse_all_day(response), + time_notes=self._parse_time_notes(response), + location=self._parse_location(response), + links=self._parse_links(response), + source=response.url, ) - yield meeting - def _parse_title(self, item): - """Parse or generate meeting title.""" - return item.css(".djc_category span").xpath("text()").extract() + def _parse_title(self, response): + """Parse or generate meeting title.""" + return response.xpath( + "//div[@class='jev_evdt_header']/div/h2/text()" + ).extract()[0] + + def _parse_url(self, response): + """Parse or generate meeting title.""" + return [i.strip() for i in response.xpath("p/a/@href").extract()][0] + + def _parse_description(self, response): + """Parse or generate meeting description.""" + return "" + + def _parse_classification(self, response): + """Parse or generate classification from allowed options.""" + return NOT_CLASSIFIED + + def _parse_start(self, response): + """Parse start datetime as a naive datetime object.""" + return datetime.strptime( + " ".join( + [ + i.strip() + for i in response.xpath( + "//div[@class='jev_evdt_header']/div/p/text()" + ).extract() + ] + ), + "%A, %B %d, %Y %I:%M%p", + ) + + def _parse_end(self, response): + """Parse end datetime as a naive datetime object. + Added by pipeline if None""" + return None + + def _parse_time_notes(self, response): + """Parse any additional notes on the timing of the meeting""" + return "" - def _parse_start(self, item): - """Parse start datetime as a naive datetime object.""" - return datetime.strptime(item.css(".djc_producer span").xpath("text()").extract()[0], '%B %d, %Y') + def _parse_all_day(self, response): + """Parse or generate all-day status. Defaults to False.""" + return False + + def _parse_location(self, response): + """Parse or generate location.""" + addr = re.split( + "-|,", + response.xpath("//div[@class='jev_evdt_location']/text()") + .extract()[0] + .strip(), + maxsplit=1, + ) + return { + # Using reverse indexing for the cases + # where there is no building name or no location + "address": addr[-1], + "name": addr[0], + } + + def _parse_links(self, response): + """Parse or generate links.""" + return [ + {"href": item, "title": "Zoom Link"} + for item in response.xpath( + "//div[@class='jev_evdt_desc']/p/a/@href" + ).extract()[:1] + ] + + def _parse_source(self, response): + """Parse or generate source.""" + return response.url + + class ChiOhareNoiseSubSpider2: + def parse(self, response): + """ + `parse` should always `yield` Meeting items. + + Change the `_parse_title`, `_parse_start`, etc methods to fit your scraping + needs. + """ + for item in response.css("tr.cat-list-row0") + response.css( + "tr.cat-list-row1" + ): + meeting = Meeting( + title=self._parse_title(item), + start=self._parse_start(item), + links=self._parse_links(item, response), + source=self._parse_source(response), + ) + yield meeting + next_page = response.xpath("//li[@class='pagination-next']/a/@href").get() + if next_page is not None: + yield response.follow(response.urljoin(next_page), callback=self.parse) + + def _parse_title(self, item): + """Parse or generate meeting title.""" + return item.css(".djc_category span").xpath("text()").extract()[0] + + def _parse_start(self, item): + """Parse start datetime as a naive datetime object.""" + return datetime.strptime( + item.css(".djc_producer span").xpath("text()").extract()[0], "%B %d, %Y" + ) - def _parse_links(self, item, response): - """Parse or generate links.""" - links = item.xpath('td[@class="djc_price"]/div/ul/li/a') - return [{"href": response.url+'?'+link.xpath("@href").extract()[0].split('?')[1], - "title": link.xpath("span/text()").extract()[0]} - for link in links] + def _parse_links(self, item, response): + """Parse or generate links.""" + links = item.xpath('td[@class="djc_price"]/div/ul/li/a') + return [ + { + "href": response.url + + "?" + + link.xpath("@href").extract()[0].split("?")[1], + "title": link.xpath("span/text()").extract()[0], + } + for link in links + ] + def _parse_source(self, response): + """Parse or generate source.""" + return response.url - def _parse_source(self, response): - """Parse or generate source.""" - return response.url + def start_requests(self): + urls = [ + "https://www.oharenoise.org/meetings-all/year.listevents/", + "https://www.oharenoise.org/about-oncc/agendas-and-minutes", + ] + yield Request(urls[0], callback=self.ChiOhareNoiseSubSpider1().parse) + yield Request(urls[1], callback=self.ChiOhareNoiseSubSpider2().parse) diff --git a/city_scrapers/spiders/chi_ohare_noise_2.py b/city_scrapers/spiders/chi_ohare_noise_2.py deleted file mode 100644 index 4909d1c6c..000000000 --- a/city_scrapers/spiders/chi_ohare_noise_2.py +++ /dev/null @@ -1,98 +0,0 @@ -from datetime import datetime -import re -from datetime import timedelta - -from scrapy import Request - -from city_scrapers_core.constants import NOT_CLASSIFIED -from city_scrapers_core.items import Meeting -from city_scrapers_core.spiders import CityScrapersSpider - - -class ChiOhareNoise2Spider(CityScrapersSpider): - name = "chi_ohare_noise_2" - agency = "Chicago O'Hare Noise Compatibility Commission" - timezone = "America/Chicago" - start_urls = ["https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-"] - - def parse(self, response): - """ - `parse` should always `yield` Meeting items. - - Change the `_parse_title`, `_parse_start`, etc methods to fit your scraping - needs. - """ - for item in response.css(".ev_td_li"): - surl = self._parse_url(item) - yield Request(url=response.urljoin(surl), callback=self._parse_subpage) - - #meeting["status"] = self._get_status(meeting) - #meeting["id"] = self._get_id(meeting) - - #yield meeting - - def _parse_subpage(self, response): - stime = self._parse_start(response) - meeting = Meeting( - title=self._parse_title(response), - description=self._parse_description(response), - classification=self._parse_classification(response), - start=stime, - end=stime+timedelta(hours=1), - all_day=self._parse_all_day(response), - time_notes=self._parse_time_notes(response), - location=self._parse_location(response), - links=self._parse_links(response), - source=response.url, - ) - - yield meeting - - def _parse_title(self, response): - """Parse or generate meeting title.""" - return response.xpath("//div[@class='jev_evdt_header']/div/h2/text()").extract()[0] - - def _parse_url(self, item): - """Parse or generate meeting title.""" - return [i.strip() for i in item.xpath('p/a/@href').extract()][0] - - def _parse_description(self, item): - """Parse or generate meeting description.""" - return "" - - def _parse_classification(self, item): - """Parse or generate classification from allowed options.""" - return NOT_CLASSIFIED - - def _parse_start(self, response): - """Parse start datetime as a naive datetime object.""" - return datetime.strptime(' '.join([i.strip() for i in response.xpath("//div[@class='jev_evdt_header']/div/p/text()").extract()]), '%A, %B %d, %Y %I:%M%p') - - def _parse_end(self, item): - """Parse end datetime as a naive datetime object. Added by pipeline if None""" - return None - - def _parse_time_notes(self, item): - """Parse any additional notes on the timing of the meeting""" - return "" - - def _parse_all_day(self, item): - """Parse or generate all-day status. Defaults to False.""" - return False - - def _parse_location(self, response): - """Parse or generate location.""" - addr = re.split('-|,', response.xpath("//div[@class='jev_evdt_location']/text()").extract()[0].strip(), maxsplit=1) - return { - # Using reverse indexing for the cases where there is no building name or no location - "address": addr[-1], - "name": addr[0], - } - - def _parse_links(self, item): - """Parse or generate links.""" - return [{"href": "", "title": ""}] - - def _parse_source(self, response): - """Parse or generate source.""" - return response.url diff --git a/logput b/logput index dce1b1485..1dfef2285 100644 --- a/logput +++ b/logput @@ -1,7 +1,7 @@ -2020-08-08 12:39:35 [scrapy.utils.log] INFO: Scrapy 2.1.0 started (bot: city_scrapers) -2020-08-08 12:39:35 [scrapy.utils.log] INFO: Versions: lxml 4.5.1.0, libxml2 2.9.10, cssselect 1.1.0, parsel 1.6.0, w3lib 1.22.0, Twisted 20.3.0, Python 3.8.5 (default, Jul 21 2020, 10:48:26) - [Clang 11.0.3 (clang-1103.0.32.62)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1g 21 Apr 2020), cryptography 2.9.2, Platform macOS-10.15.5-x86_64-i386-64bit -2020-08-08 12:39:35 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor -2020-08-08 12:39:35 [scrapy.crawler] INFO: Overridden settings: +2020-08-19 18:04:13 [scrapy.utils.log] INFO: Scrapy 2.1.0 started (bot: city_scrapers) +2020-08-19 18:04:13 [scrapy.utils.log] INFO: Versions: lxml 4.5.1.0, libxml2 2.9.10, cssselect 1.1.0, parsel 1.6.0, w3lib 1.22.0, Twisted 20.3.0, Python 3.8.5 (default, Jul 21 2020, 10:48:26) - [Clang 11.0.3 (clang-1103.0.32.62)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1g 21 Apr 2020), cryptography 2.9.2, Platform macOS-10.15.5-x86_64-i386-64bit +2020-08-19 18:04:13 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor +2020-08-19 18:04:13 [scrapy.crawler] INFO: Overridden settings: {'AUTOTHROTTLE_ENABLED': True, 'AUTOTHROTTLE_MAX_DELAY': 30.0, 'AUTOTHROTTLE_START_DELAY': 1.0, @@ -14,14 +14,14 @@ 'SPIDER_MODULES': ['city_scrapers.spiders'], 'USER_AGENT': 'City Scrapers [development mode]. Learn more and say hello at ' 'https://cityscrapers.org/'} -2020-08-08 12:39:35 [scrapy.extensions.telnet] INFO: Telnet Password: 36ae5455244a74bc -2020-08-08 12:39:35 [scrapy.middleware] INFO: Enabled extensions: +2020-08-19 18:04:13 [scrapy.extensions.telnet] INFO: Telnet Password: e22e2a6d53a960ec +2020-08-19 18:04:13 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.memusage.MemoryUsage', 'scrapy.extensions.logstats.LogStats', 'scrapy.extensions.throttle.AutoThrottle'] -2020-08-08 12:39:35 [scrapy.middleware] INFO: Enabled downloader middlewares: +2020-08-19 18:04:13 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', @@ -33,41 +33,809 @@ 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] -2020-08-08 12:39:35 [scrapy.middleware] INFO: Enabled spider middlewares: +2020-08-19 18:04:13 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] -2020-08-08 12:39:35 [scrapy.middleware] INFO: Enabled item pipelines: +2020-08-19 18:04:13 [scrapy.middleware] INFO: Enabled item pipelines: ['city_scrapers_core.pipelines.MeetingPipeline'] -2020-08-08 12:39:35 [scrapy.core.engine] INFO: Spider opened -2020-08-08 12:39:35 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) -2020-08-08 12:39:35 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 -2020-08-08 12:39:36 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-08-08 12:39:37 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-08-08 12:39:37 [scrapy.core.engine] INFO: Closing spider (finished) -2020-08-08 12:39:37 [scrapy.statscollectors] INFO: Dumping Scrapy stats: -{'downloader/request_bytes': 582, - 'downloader/request_count': 2, - 'downloader/request_method_count/GET': 2, - 'downloader/response_bytes': 10405, - 'downloader/response_count': 2, - 'downloader/response_status_count/200': 2, - 'elapsed_time_seconds': 2.01373, +2020-08-19 18:04:13 [scrapy.core.engine] INFO: Spider opened +2020-08-19 18:04:13 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) +2020-08-19 18:04:13 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 +2020-08-19 18:04:13 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-08-19 18:04:14 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-08-19 18:04:15 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 8, 21, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=645', + 'title': 'Agenda'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 8, 21, 0, 0), + 'title': 'Fly Quiet Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 8, 13, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=643', + 'title': 'Agenda'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 8, 13, 0, 0), + 'title': 'Strategic Planning'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 6, 5, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=631', + 'title': 'Agenda'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 6, 5, 0, 0), + 'title': 'ONCC General Meeting'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 5, 26, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=627', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=642', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 5, 26, 0, 0), + 'title': 'Fly Quiet Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 5, 19, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=625', + 'title': 'Agenda'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 5, 19, 0, 0), + 'title': 'Ad Hoc Governance Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 5, 12, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=621', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=641', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 5, 12, 0, 0), + 'title': 'Ad-Hoc Nominating Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 4, 21, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=611', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=630', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 4, 21, 0, 0), + 'title': 'Fly Quiet Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 4, 14, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=610', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=639', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 4, 14, 0, 0), + 'title': 'Technical Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 2, 25, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=605', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=615', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 2, 25, 0, 0), + 'title': 'Fly Quiet Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 2, 14, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=604', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=637', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 2, 14, 0, 0), + 'title': 'ONCC General Meeting'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 8, 18, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=644', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=647', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 8, 18, 0, 0), + 'title': 'Technical Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 6, 23, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=632', + 'title': 'Agenda'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 6, 23, 0, 0), + 'title': 'Fly Quiet Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 6, 1, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=629', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=646', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 6, 1, 0, 0), + 'title': 'Executive Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 5, 19, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=624', + 'title': 'Agenda'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 5, 19, 0, 0), + 'title': 'Technical Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 5, 13, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=623', + 'title': 'Agenda'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 5, 13, 0, 0), + 'title': 'Residential Sound Insulation Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 4, 27, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=613', + 'title': 'Agenda'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 4, 27, 0, 0), + 'title': 'Executive Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 4, 20, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=612', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=640', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 4, 20, 0, 0), + 'title': 'Ad Hoc Governance Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 3, 30, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=609', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=638', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 3, 30, 0, 0), + 'title': 'Executive Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 2, 18, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=603', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=618', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 2, 18, 0, 0), + 'title': 'Ad Hoc Governance Committee'} +2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'end': datetime.datetime(2020, 2, 10, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=599', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=616', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 2, 10, 0, 0), + 'title': 'Executive Committee'} +2020-08-19 18:04:15 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:16 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/30/308/-/executive-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 3, 30, 12, 0), + 'links': [], + 'location': {'address': '', 'name': ''}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/30/308/-/executive-committee-meeting', + 'start': datetime.datetime(2020, 3, 30, 11, 0), + 'time_notes': '', + 'title': 'Executive Committee Meeting'} +2020-08-19 18:04:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:16 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/24/299/-/cancelled-fly-quiet-committee> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 3, 24, 10, 30), + 'links': [], + 'location': {'address': ' 10510 W. Zemke Road, Chicago, IL, Conference Room 1', + 'name': 'Chicago Dept. of Aviation Building'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/24/299/-/cancelled-fly-quiet-committee', + 'start': datetime.datetime(2020, 3, 24, 9, 30), + 'time_notes': '', + 'title': 'Fly Quiet Committee'} +2020-08-19 18:04:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:16 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/18/335/-/cancelled-governance-committee> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 3, 18, 10, 30), + 'links': [], + 'location': {'address': '', 'name': ''}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/18/335/-/cancelled-governance-committee', + 'start': datetime.datetime(2020, 3, 18, 9, 30), + 'time_notes': '', + 'title': 'Governance Committee'} +2020-08-19 18:04:17 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:17 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/17/322/-/cancelled-technical-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 3, 17, 10, 0), + 'links': [], + 'location': {'address': ' 50 S. Emerson Street, Mount Prospect, IL', + 'name': 'Mount Prospect Village Hall'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/17/322/-/cancelled-technical-committee-meeting', + 'start': datetime.datetime(2020, 3, 17, 9, 0), + 'time_notes': '', + 'title': 'Technical Committee Meeting'} +2020-08-19 18:04:17 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:17 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/25/298/-/fly-quiet-committee> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 2, 25, 10, 30), + 'links': [], + 'location': {'address': ' 10510 W. Zemke Road, Chicago, IL, Conference Room 1', + 'name': 'Chicago Dept. of Aviation Building'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/25/298/-/fly-quiet-committee', + 'start': datetime.datetime(2020, 2, 25, 9, 30), + 'time_notes': '', + 'title': 'Fly Quiet Committee'} +2020-08-19 18:04:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/18/336/-/governance-committee> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 2, 18, 10, 30), + 'links': [], + 'location': {'address': ' 10510 W. Zemke Road, Chicago, IL', + 'name': 'Chicago Dept. of Aviation Building'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/18/336/-/governance-committee', + 'start': datetime.datetime(2020, 2, 18, 9, 30), + 'time_notes': '', + 'title': 'Governance Committee'} +2020-08-19 18:04:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/14/296/-/o-hare-noise-compatibility-commission-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 2, 14, 9, 0), + 'links': [], + 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', + 'name': 'Cafe La Cave '}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/14/296/-/o-hare-noise-compatibility-commission-meeting', + 'start': datetime.datetime(2020, 2, 14, 8, 0), + 'time_notes': '', + 'title': "O'Hare Noise Compatibility Commission Meeting"} +2020-08-19 18:04:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/10/307/-/executive-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 2, 10, 11, 30), + 'links': [], + 'location': {'address': ' 10510 W. Zemke Rd', + 'name': 'Aviation Administration Building'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/10/307/-/executive-committee-meeting', + 'start': datetime.datetime(2020, 2, 10, 10, 30), + 'time_notes': '', + 'title': 'Executive Committee Meeting'} +2020-08-19 18:04:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/29/294/-/residential-sound-insulation-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 1, 29, 10, 30), + 'links': [], + 'location': {'address': ' 4000 N. Olcott, Norridge, IL', + 'name': 'Norridge Village Hall'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/29/294/-/residential-sound-insulation-committee-meeting', + 'start': datetime.datetime(2020, 1, 29, 9, 30), + 'time_notes': '', + 'title': 'Residential Sound Insulation Committee Meeting'} +2020-08-19 18:04:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/28/293/-/fly-quiet-committee-note-change-of-location> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 1, 28, 10, 30), + 'links': [], + 'location': {'address': ' 2777 Mannheim Rd., Des Plaines, IL', + 'name': 'Cafe la Cave'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/28/293/-/fly-quiet-committee-note-change-of-location', + 'start': datetime.datetime(2020, 1, 28, 9, 30), + 'time_notes': '', + 'title': 'Fly Quiet Committee *NOTE CHANGE OF LOCATION*'} +2020-08-19 18:04:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/21/295/-/cancelled-technical-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 1, 21, 10, 0), + 'links': [], + 'location': {'address': ' 50 S. Emerson Street, Mount Prospect, IL', + 'name': 'Mount Prospect Village Hall'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/21/295/-/cancelled-technical-committee-meeting', + 'start': datetime.datetime(2020, 1, 21, 9, 0), + 'time_notes': '', + 'title': 'Technical Committee Meeting'} +2020-08-19 18:04:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/16/334/-/governance-committee> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 1, 16, 10, 30), + 'links': [], + 'location': {'address': ' 10510 W. Zemke Road, Chicago, IL', + 'name': 'Chicago Dept. of Aviation Building'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/16/334/-/governance-committee', + 'start': datetime.datetime(2020, 1, 16, 9, 30), + 'time_notes': '', + 'title': 'Governance Committee'} +2020-08-19 18:04:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/10/315/-/o-hare-noise-compatibility-commission-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 1, 10, 9, 0), + 'links': [], + 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', + 'name': 'Cafe La Cave '}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/10/315/-/o-hare-noise-compatibility-commission-meeting', + 'start': datetime.datetime(2020, 1, 10, 8, 0), + 'time_notes': '', + 'title': "O'Hare Noise Compatibility Commission Meeting"} +2020-08-19 18:04:21 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:21 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/06/297/-/executive-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 1, 6, 11, 30), + 'links': [], + 'location': {'address': ' 10510 W. Zemke Rd', + 'name': 'Aviation Administration Building'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/06/297/-/executive-committee-meeting', + 'start': datetime.datetime(2020, 1, 6, 10, 30), + 'time_notes': '', + 'title': 'Executive Committee Meeting'} +2020-08-19 18:04:21 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:21 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/12/08/306/-/fly-quiet-committee> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 12, 8, 10, 30), + 'links': [], + 'location': {'address': ' 10510 W. Zemke Road, Chicago, IL, Conference Room 1', + 'name': 'Chicago Dept. of Aviation Building'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/12/08/306/-/fly-quiet-committee', + 'start': datetime.datetime(2020, 12, 8, 9, 30), + 'time_notes': '', + 'title': 'Fly Quiet Committee'} +2020-08-19 18:04:21 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:21 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/17/327/-/technical-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 11, 17, 10, 0), + 'links': [], + 'location': {'address': ' 50 S. Emerson Street, Mount Prospect, IL', + 'name': 'Mount Prospect Village Hall'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/17/327/-/technical-committee-meeting', + 'start': datetime.datetime(2020, 11, 17, 9, 0), + 'time_notes': '', + 'title': 'Technical Committee Meeting'} +2020-08-19 18:04:22 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:22 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:22 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/06/321/-/o-hare-noise-compatibility-commission-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 11, 6, 9, 0), + 'links': [], + 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', + 'name': 'Cafe La Cave '}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/06/321/-/o-hare-noise-compatibility-commission-meeting', + 'start': datetime.datetime(2020, 11, 6, 8, 0), + 'time_notes': '', + 'title': "O'Hare Noise Compatibility Commission Meeting"} +2020-08-19 18:04:22 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/11/331/-/residential-sound-insulation-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 11, 11, 10, 30), + 'links': [], + 'location': {'address': ' 4000 N. Olcott, Norridge, IL', + 'name': 'Norridge Village Hall'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/11/331/-/residential-sound-insulation-committee-meeting', + 'start': datetime.datetime(2020, 11, 11, 9, 30), + 'time_notes': '', + 'title': 'Residential Sound Insulation Committee Meeting'} +2020-08-19 18:04:23 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:23 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/02/314/-/executive-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 11, 2, 11, 30), + 'links': [], + 'location': {'address': ' 10510 W. Zemke Rd', + 'name': 'Aviation Administration Building'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/02/314/-/executive-committee-meeting', + 'start': datetime.datetime(2020, 11, 2, 10, 30), + 'time_notes': '', + 'title': 'Executive Committee Meeting'} +2020-08-19 18:04:23 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:24 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/27/305/-/fly-quiet-committee> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 10, 27, 10, 30), + 'links': [], + 'location': {'address': ' 10510 W. Zemke Road, Chicago, IL, Conference Room 1', + 'name': 'Chicago Dept. of Aviation Building'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/27/305/-/fly-quiet-committee', + 'start': datetime.datetime(2020, 10, 27, 9, 30), + 'time_notes': '', + 'title': 'Fly Quiet Committee'} +2020-08-19 18:04:24 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:24 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/13/326/-/technical-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 10, 13, 10, 0), + 'links': [], + 'location': {'address': ' 50 S. Emerson Street, Mount Prospect, IL', + 'name': 'Mount Prospect Village Hall'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/13/326/-/technical-committee-meeting', + 'start': datetime.datetime(2020, 10, 13, 9, 0), + 'time_notes': '', + 'title': 'Technical Committee Meeting'} +2020-08-19 18:04:25 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:25 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/02/320/-/o-hare-noise-compatibility-commission-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 10, 2, 9, 0), + 'links': [], + 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', + 'name': 'Cafe La Cave '}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/02/320/-/o-hare-noise-compatibility-commission-meeting', + 'start': datetime.datetime(2020, 10, 2, 8, 0), + 'time_notes': '', + 'title': "O'Hare Noise Compatibility Commission Meeting"} +2020-08-19 18:04:25 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:25 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/28/312/-/executive-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 9, 28, 11, 30), + 'links': [], + 'location': {'address': ' 10510 W. Zemke Rd', + 'name': 'Aviation Administration Building'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/28/312/-/executive-committee-meeting', + 'start': datetime.datetime(2020, 9, 28, 10, 30), + 'time_notes': '', + 'title': 'Executive Committee Meeting'} +2020-08-19 18:04:25 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:25 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/22/304/-/fly-quiet-committee> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 9, 22, 10, 30), + 'links': [], + 'location': {'address': ' 10510 W. Zemke Road, Chicago, IL, Conference Room 1', + 'name': 'Chicago Dept. of Aviation Building'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/22/304/-/fly-quiet-committee', + 'start': datetime.datetime(2020, 9, 22, 9, 30), + 'time_notes': '', + 'title': 'Fly Quiet Committee'} +2020-08-19 18:04:26 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:26 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/15/325/-/technical-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 9, 15, 10, 0), + 'links': [], + 'location': {'address': ' 50 S. Emerson Street, Mount Prospect, IL', + 'name': 'Mount Prospect Village Hall'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/15/325/-/technical-committee-meeting', + 'start': datetime.datetime(2020, 9, 15, 9, 0), + 'time_notes': '', + 'title': 'Technical Committee Meeting'} +2020-08-19 18:04:26 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:26 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/09/330/-/residential-sound-insulation-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 9, 9, 10, 30), + 'links': [], + 'location': {'address': ' 4000 N. Olcott, Norridge, IL', + 'name': 'Norridge Village Hall'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/09/330/-/residential-sound-insulation-committee-meeting', + 'start': datetime.datetime(2020, 9, 9, 9, 30), + 'time_notes': '', + 'title': 'Residential Sound Insulation Committee Meeting'} +2020-08-19 18:04:26 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:26 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/04/319/-/o-hare-noise-compatibility-commission-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 9, 4, 9, 0), + 'links': [], + 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', + 'name': 'Cafe La Cave '}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/04/319/-/o-hare-noise-compatibility-commission-meeting', + 'start': datetime.datetime(2020, 9, 4, 8, 0), + 'time_notes': '', + 'title': "O'Hare Noise Compatibility Commission Meeting"} +2020-08-19 18:04:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:27 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/31/313/-/executive-committee-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 8, 31, 11, 30), + 'links': [], + 'location': {'address': ' 10510 W. Zemke Rd', + 'name': 'Aviation Administration Building'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/31/313/-/executive-committee-meeting', + 'start': datetime.datetime(2020, 8, 31, 10, 30), + 'time_notes': '', + 'title': 'Executive Committee Meeting'} +2020-08-19 18:04:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:27 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/20/303/-/fly-quiet-committee-note-change-of-date-via-video-teleconference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 8, 20, 10, 30), + 'links': [], + 'location': {'address': 'via video/teleconference', + 'name': 'via video/teleconference'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/20/303/-/fly-quiet-committee-note-change-of-date-via-video-teleconference', + 'start': datetime.datetime(2020, 8, 20, 9, 30), + 'time_notes': '', + 'title': 'Fly Quiet Committee *Note Change of Date* (via ' + 'video/teleconference)'} +2020-08-19 18:04:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:27 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/18/332/-/technical-committee-meeting-via-video-teleconference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 8, 18, 10, 0), + 'links': [{'href': 'https://us02web.zoom.us/j/86250992967?pwd=THZSZGk5TW1GeDdMYXpUSXpQaW1wZz09', + 'title': 'Zoom Link'}], + 'location': {'address': 'via video/teleconference', + 'name': 'via video/teleconference'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/18/332/-/technical-committee-meeting-via-video-teleconference', + 'start': datetime.datetime(2020, 8, 18, 9, 0), + 'time_notes': '', + 'title': 'Technical Committee Meeting (via video/teleconference)'} +2020-08-19 18:04:28 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:28 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/13/311/-/executive-committee-strategic-planning-session-via-video-teleconference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 8, 13, 10, 0), + 'links': [{'href': 'https://us02web.zoom.us/j/88533718602?pwd=MUdhUGpNN0lSM2QwWng1NWpuTERQZz09', + 'title': 'Zoom Link'}], + 'location': {'address': 'via video or audio conference', + 'name': 'via video or audio conference'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/13/311/-/executive-committee-strategic-planning-session-via-video-teleconference', + 'start': datetime.datetime(2020, 8, 13, 9, 0), + 'time_notes': '', + 'title': 'Executive Committee Strategic Planning Session (via ' + 'video/teleconference)'} +2020-08-19 18:04:28 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:28 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/23/302/-/fly-quiet-committee-via-video-teleconference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 6, 23, 10, 30), + 'links': [{'href': 'https://us02web.zoom.us/j/87533207181?pwd=NDRRaWJVYTJnZWUrbk1lcmFzQk5Edz09', + 'title': 'Zoom Link'}], + 'location': {'address': '(via video/teleconference)', + 'name': '(via video/teleconference)'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/23/302/-/fly-quiet-committee-via-video-teleconference', + 'start': datetime.datetime(2020, 6, 23, 9, 30), + 'time_notes': '', + 'title': 'Fly Quiet Committee (via video/teleconference)'} +2020-08-19 18:04:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:29 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/05/318/-/o-hare-noise-compatibility-commission-meeting-via-video-teleconference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 6, 5, 9, 0), + 'links': [{'href': 'https://us02web.zoom.us/j/89330552020?pwd=VEFISXBlMm1nU0ROdndKMldrUFQyQT09', + 'title': 'Zoom Link'}], + 'location': {'address': '(via video/teleconference)', + 'name': '(via video/teleconference)'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/05/318/-/o-hare-noise-compatibility-commission-meeting-via-video-teleconference', + 'start': datetime.datetime(2020, 6, 5, 8, 0), + 'time_notes': '', + 'title': "O'Hare Noise Compatibility Commission Meeting (via " + 'video/teleconference)'} +2020-08-19 18:04:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:29 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/01/310/-/executive-committee-meeting-via-video-teleconference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 6, 1, 11, 30), + 'links': [{'href': 'https://us02web.zoom.us/j/83620545177?pwd=M0VaeU00UVJIc3AyeVg3SUNGUk5DZz09 (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:30 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/26/301/-/fly-quiet-committee-via-video-teleconference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 5, 26, 10, 30), + 'links': [{'href': 'https://us02web.zoom.us/j/88174956923?pwd=S0JuSXhmNmh4RXhCeXNncVBuYzY0QT09', + 'title': 'Zoom Link'}], + 'location': {'address': '(via video/teleconference)', + 'name': '(via video/teleconference)'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/26/301/-/fly-quiet-committee-via-video-teleconference', + 'start': datetime.datetime(2020, 5, 26, 9, 30), + 'time_notes': '', + 'title': 'Fly Quiet Committee (via video/teleconference)'} +2020-08-19 18:04:30 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:30 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/339/-/ad-hoc-governance-committee-via-video-teleconference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 5, 19, 14, 0), + 'links': [{'href': 'https://us02web.zoom.us/j/84033580212?pwd=N0xiTzVFVlRnZmlEVHNWVW5KREthdz09', + 'title': 'Zoom Link'}], + 'location': {'address': '(via video/teleconference)', + 'name': '(via video/teleconference)'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/339/-/ad-hoc-governance-committee-via-video-teleconference', + 'start': datetime.datetime(2020, 5, 19, 13, 0), + 'time_notes': '', + 'title': 'Ad Hoc Governance Committee (via video/teleconference)'} +2020-08-19 18:04:30 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:30 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/324/-/technical-committee-meeting-via-video-teleconference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 5, 19, 10, 0), + 'links': [{'href': 'https://us02web.zoom.us/j/87544693904?pwd=bzF0QzUrd0k0dFNTa0lVQ3FLOWFrUT09', + 'title': 'Zoom Link'}], + 'location': {'address': '(via video/teleconference)', + 'name': '(via video/teleconference)'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/324/-/technical-committee-meeting-via-video-teleconference', + 'start': datetime.datetime(2020, 5, 19, 9, 0), + 'time_notes': '', + 'title': 'Technical Committee Meeting (via video/teleconference)'} +2020-08-19 18:04:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:31 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/13/329/-/residential-sound-insulation-committee-meeting-via-video-teleconference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 5, 13, 10, 30), + 'links': [{'href': 'https://us02web.zoom.us/j/89710382957?pwd=SFcxczBqbDNiaXJGcS84SXY1bC9NUT09', + 'title': 'Zoom Link'}], + 'location': {'address': '(via video/teleconference) ' + 'https://us02web.zoom.us/j/89710382957?pwd=SFcxczBqbDNiaXJGcS84SXY1bC9NUT09', + 'name': '(via video/teleconference) ' + 'https://us02web.zoom.us/j/89710382957?pwd=SFcxczBqbDNiaXJGcS84SXY1bC9NUT09'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/13/329/-/residential-sound-insulation-committee-meeting-via-video-teleconference', + 'start': datetime.datetime(2020, 5, 13, 9, 30), + 'time_notes': '', + 'title': 'Residential Sound Insulation Committee Meeting (via ' + 'video/teleconference)'} +2020-08-19 18:04:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:31 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/12/338/-/ad-hoc-nominating-committee-via-video-teleconference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 5, 12, 12, 0), + 'links': [{'href': 'https://us02web.zoom.us/j/87193530291?pwd=Q2J1dE5lTk5hQVlLWDdNUGFCMmc4UT09', + 'title': 'Zoom Link'}], + 'location': {'address': '(via video/teleconference)', + 'name': '(via video/teleconference)'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/12/338/-/ad-hoc-nominating-committee-via-video-teleconference', + 'start': datetime.datetime(2020, 5, 12, 11, 0), + 'time_notes': '', + 'title': 'Ad Hoc Nominating Committee (via video/teleconference)'} +2020-08-19 18:04:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:31 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/01/317/-/cancelled-o-hare-noise-compatibility-commission-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 5, 1, 9, 0), + 'links': [], + 'location': {'address': '', 'name': ''}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/01/317/-/cancelled-o-hare-noise-compatibility-commission-meeting', + 'start': datetime.datetime(2020, 5, 1, 8, 0), + 'time_notes': '', + 'title': "O'Hare Noise Compatibility Commission Meeting"} +2020-08-19 18:04:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/27/309/-/executive-committee-meeting-via-video-teleconference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 4, 27, 11, 30), + 'links': [], + 'location': {'address': '(via video/teleconference)', + 'name': '(via video/teleconference)'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/27/309/-/executive-committee-meeting-via-video-teleconference', + 'start': datetime.datetime(2020, 4, 27, 10, 30), + 'time_notes': '', + 'title': 'Executive Committee Meeting (via video/teleconference)'} +2020-08-19 18:04:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/21/300/-/fly-quiet-committee-via-video-or-audio-conference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 4, 21, 10, 30), + 'links': [{'href': 'https://zoom.us/j/95602787994?pwd=NUFJVkc0QUs0clhRNCs5OWdBS3l3UT09', + 'title': 'Zoom Link'}], + 'location': {'address': '(via video or audio conference)', + 'name': '(via video or audio conference)'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/21/300/-/fly-quiet-committee-via-video-or-audio-conference', + 'start': datetime.datetime(2020, 4, 21, 9, 30), + 'time_notes': '', + 'title': 'Fly Quiet Committee (via video or audio conference)'} +2020-08-19 18:04:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/20/337/-/governance-committee-via-video-or-audio-conference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 4, 20, 14, 0), + 'links': [{'href': 'https://zoom.us/j/91626694784?pwd=RG40Rk5qb2EyQnc1Q2FrOW5jVWcwdz09', + 'title': 'Zoom Link'}], + 'location': {'address': 'via video or audio conference', + 'name': 'via video or audio conference'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/20/337/-/governance-committee-via-video-or-audio-conference', + 'start': datetime.datetime(2020, 4, 20, 13, 0), + 'time_notes': '', + 'title': 'Governance Committee (via video or audio conference)'} +2020-08-19 18:04:33 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:33 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/14/323/-/technical-committee-meeting-via-video-or-audio-conference> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 4, 14, 10, 0), + 'links': [{'href': 'https://zoom.us/j/966036814?pwd=ZTV1ZFRMSVNOYlY1SkVDbDIzWnpaQT09', + 'title': 'Zoom Link'}], + 'location': {'address': 'via video or audio conference', + 'name': 'via video or audio conference'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/14/323/-/technical-committee-meeting-via-video-or-audio-conference', + 'start': datetime.datetime(2020, 4, 14, 9, 0), + 'time_notes': '', + 'title': 'Technical Committee Meeting (via video or audio conference)'} +2020-08-19 18:04:33 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) +2020-08-19 18:04:33 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/03/316/-/cancelled-o-hare-noise-compatibility-commission-meeting> +{'all_day': False, + 'classification': 'Not classified', + 'description': '', + 'end': datetime.datetime(2020, 4, 3, 9, 0), + 'links': [], + 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', + 'name': 'Cafe La Cave '}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/03/316/-/cancelled-o-hare-noise-compatibility-commission-meeting', + 'start': datetime.datetime(2020, 4, 3, 8, 0), + 'time_notes': '', + 'title': "O'Hare Noise Compatibility Commission Meeting"} +2020-08-19 18:04:33 [scrapy.core.engine] INFO: Closing spider (finished) +2020-08-19 18:04:33 [scrapy.statscollectors] INFO: Dumping Scrapy stats: +{'downloader/request_bytes': 20644, + 'downloader/request_count': 48, + 'downloader/request_method_count/GET': 48, + 'downloader/response_bytes': 325210, + 'downloader/response_count': 48, + 'downloader/response_status_count/200': 48, + 'elapsed_time_seconds': 20.493964, 'finish_reason': 'finished', - 'finish_time': datetime.datetime(2020, 8, 8, 11, 39, 37, 663806), - 'log_count/DEBUG': 2, + 'finish_time': datetime.datetime(2020, 8, 19, 17, 4, 33, 849465), + 'item_scraped_count': 65, + 'log_count/DEBUG': 113, 'log_count/INFO': 10, - 'memusage/max': 185888768, - 'memusage/startup': 185888768, - 'response_received_count': 2, + 'memusage/max': 185434112, + 'memusage/startup': 185434112, + 'request_depth_max': 1, + 'response_received_count': 48, 'robotstxt/request_count': 1, 'robotstxt/response_count': 1, 'robotstxt/response_status_count/200': 1, - 'scheduler/dequeued': 1, - 'scheduler/dequeued/memory': 1, - 'scheduler/enqueued': 1, - 'scheduler/enqueued/memory': 1, - 'start_time': datetime.datetime(2020, 8, 8, 11, 39, 35, 650076)} -2020-08-08 12:39:37 [scrapy.core.engine] INFO: Spider closed (finished) + 'scheduler/dequeued': 47, + 'scheduler/dequeued/memory': 47, + 'scheduler/enqueued': 47, + 'scheduler/enqueued/memory': 47, + 'start_time': datetime.datetime(2020, 8, 19, 17, 4, 13, 355501)} +2020-08-19 18:04:33 [scrapy.core.engine] INFO: Spider closed (finished) diff --git a/city_scrapers/spiders/.chi_ohare_noise_2.py.swp b/tests/.test_chi_ohare_noise.py.swp similarity index 64% rename from city_scrapers/spiders/.chi_ohare_noise_2.py.swp rename to tests/.test_chi_ohare_noise.py.swp index 0c1039cf1765c97ee279f9a870deb850b3a215ac..6bf8079f47c9cd1593a1797b3ca96f33e86249c3 100644 GIT binary patch literal 12288 zcmeI2%WoS+9LFa`f)v_PMh@#bIcN|Z$-d*jC ziIS>tfLkT5962H20_6w@!2$ROK!pQb5aI$tLgEVLJG*Op?IudDMYGB$j%R-Jdwl0% zS(&ZM<;F6dElm+T4-s->ciuYp=WpcArwDNa-}VC0VYcc#`gxUk?lC6u;Ma!^%PxDZ zDSPd9IgElG=15U?xZE!aC$d8piLzt@ZR)q>bhs6C?1))@zy&LX`$wmud$a;tfx{H& z$#!w}EO~Bvs-n7c#(Db4!|R7x>Nc%_RzNGD70?Q31+)TM0j+>m;D4%s3@6ANsO?l* z-{tgmV(c}2t6#JNS^=$qRzNGD70?Q31+)TM0j+>mKr5gXxC<4qT|)l4mk>6I&k^zy_yPprSzvi+)v0&@G>n7U0H2e)un}Iv$5Ey*Rt7+TAN6y@BjK{8i-Ou za_KQ+jvDo=m+IA4y+&J&)>7RVT67}T9x=GMR$nv<$K>j9e^(?aZd}Wz6?bH_N$2E_ zYDLhC9G18kX1Bh!q;eZ*o>*o5T_2>5@@&_Qm=GiRFVt#l^=5NeBJ6xj&4|&;!gBri zB7^KyjFy>pWivanQfbRxD%P;lW^19f9%nf$Ha0woOYV*f*Qkx?#@&;+k-V$!uVN98 zyK6O;>uT}UM>8A_IEj1ar)j#jWNN56U75O2pi}Wrr9dnB>|DeABwmHIBbnrTGQaVF zlX!L+Zu;_Yxci2)RjW6vYmG~-#_Gz5&Y2-e1a%DMj#>%HZj3kf&~<-94wgY|6?-!b zgRJ{b(Cso`(kL3)% zj89DL%`or<%Wo1g420=Jr1U*vB!5})0x_m5)0JXnrdYXvgh>(%HlyLlyh18L3>Ar(E@wFqIHNm#TZ^R{vgk zDJfHw##~a~4Fi0h9a4PiCXsHt=l4xBS{@R}a)OAJdXjr$Fd&=VkwYBJqO^TE7&i8~ ilqQ;d9;Uek0!u-5`hiky3sfnc1nO_!fk}EykpBP+EY&yw literal 12288 zcmeHNO>Z1E7?*jpF8o0fmkY9oCfG>e7 zz-8bGzyU^q+sH4t32XtIz;R$NFarE^A0a;iUjT0d7l9?<0B~y``~ltoRsjq6`CdXk z1+D^DfXl!|-~w<4cnr9)myoZ3_ki=j6yN|Oz_%lWd=7jDyag-+)4&w454d>`AyuFP zi~t|p4K9Fp00r2D~Nt^?PA zEnpeYYjOzqmmZot5m%karxBN7;7e`~D(^%dN$V`jdX7bs(;%W7+~*NfoXVgRHMosB z)6V5hS_^fnT3l0=+-pu`1C7s;tiQyE)eBZD;!SIoTGj-$lu#ZwAD7m$riDX$!apaA zMm816z(VnM|Dcz$J}Dl{XKg(gbKPilYHcE4sY|((Y5nB%js~Ojj1>L`Cbx-17EXol z@@-wv1VgIDX@f~F=~jzJTz}(NNa_c)-VvUw8|vXTohb8y22&#NGZzwiE@TDT9Xf~6 zY#Dk&RV$MhCn`N^?d_1MR@HJGS8T4HXn0J@xyo6-S>v0os-^u`)*QvRRdw7NxABfx z1AoTcZK)y=R>vo3n{Ar`=BCH9v5OZVak+2}lDgg3{}l5iA3hNCyh)dJsZ>mLq)kuq zChK@gQWa2RUgQCcYA_n0gM{5gwiHh`Mdo+4AcS5G=3#9V7BTS6iYn38>lQT4SDSN% z&jRtIoz7>1%nWPLt5u3bM7Swfql}+bem%FsyrJ)EpWDkKg zsqVADC3HI6mvls}gisG%tr$lA{v$Y1A$2)&>x3DzXvn_m;p5Sw z)z;@|veK2%Va^GCW>@--kTskk!>LOBG$(wKhq!EpdzM{S!;iY0k|tB`-FZDl>mw(=BImMcfq?uKWNxxKeTCY|ts38Lsm1t?=Ejr> z6BgpZw0U|-=x?8MSK3+CLW}tuCT^qa$>uYwy*`nBn^nU%R}E}+)e2k_k~D>)U8tIx zTxSFbz5Ty#{9dOLs>k`jye-z1bluRko=U|`pwE-kNi7ItKR^e@of#b>(St>+O| zpkHgg%_CfQ&O!^n8$lfRL!5r2tE-b@x?Fi0Io$|Gkkd^Uf;NIvQ5T3?yZWmwq{Q7A z8=EK?rj4DM;1)4knxfBTogr>In^`f57|OKY=}k|eH2 MJnm#?!}Oc{1 - - - - - - - - - - - - - - - Agendas and Minutes Archive - O'Hare Noise Compatibility Commission - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - -
-
-
-
- - -
- - - - -

- Agendas and Minutes Archive

- -
- -
-
- - -
-
-
-
-
    -
  • Meetings:
  • -
  • - -
  • -
  • -
  • - -
-
- - - - - - - - - -
- - -
- -
- -
-
-
-
- -
- -
- - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  - Meeting - Date -
  • Agenda
  • Minutes
-
- - - Fly Quiet Committee - - June 23, 2020 - - -
- -
- - - ONCC General Meeting - - June 5, 2020 - - -
- -
- - - Executive Committee - - June 1, 2020 - - -
- -
- - - Fly Quiet Committee - - May 26, 2020 - - -
- -
- - - Technical Committee - - May 19, 2020 - - -
- -
- - - Ad Hoc Governance Committee - - May 19, 2020 - - -
- -
- - - Residential Sound Insulation Committee - - May 13, 2020 - - -
- -
- - - Ad-Hoc Nominating Committee - - May 12, 2020 - - -
- -
- - - Executive Committee - - April 27, 2020 - - -
- -
- - - Fly Quiet Committee - - April 21, 2020 - - -
- -
- - - Ad Hoc Governance Committee - - April 20, 2020 - - -
- -
- - - Technical Committee - - April 14, 2020 - - -
- -
- - - Executive Committee - - March 30, 2020 - - -
- -
- - - Fly Quiet Committee - - February 25, 2020 - - -
- -
- - - Ad Hoc Governance Committee - - February 18, 2020 - - -
- -
- - - ONCC General Meeting - - February 14, 2020 - - -
- -
- - - Executive Committee - - February 10, 2020 - - -
- -
- - - Residential Sound Insulation Committee - - January 29, 2020 - - -
- -
- - - Fly Quiet Committee - - January 28, 2020 - - -
- -
- - - Ad Hoc Governance Committee - - January 16, 2020 - - -
- -
-
- - -
- -
- - -
- - -
- - - -
- -
- - - -
- - - -
-
- \ No newline at end of file diff --git a/tests/files/chi_ohare_noise/.chi_ohare_noise.html.swp b/tests/files/chi_ohare_noise/.chi_ohare_noise.html.swp new file mode 100644 index 0000000000000000000000000000000000000000..d08c91a001bf043283f1a7b2db65ba38dcd6560d GIT binary patch literal 73728 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 mZ_xuFY^uST{QVRMYvcFRyc9 + + + + + + + + + + + + + + + + Meetings - All - O'Hare Noise Compatibility Commission + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+ +
+
+

MEETINGS

+
+
+
+ +
+
+
+ 2020
+ + +
+
+
+
+ +
+ January 2020
+
+ +
+ February 2020
+
+ +
+ March 2020
+
+ +
+ April 2020
+
+ +
+ May 2020
+
+ June 2020
+
+ August 2020
+
+ +
+ September 2020
+
+ +
+ October 2020
+
+ +
+ November 2020
+
+ +
+ December 2020
+
+ +
+
+
+
+ + +
+
+
+
+
+ + + +
+ + + +
+
+ diff --git a/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_1.html b/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_1.html new file mode 100644 index 000000000..8aa92dd57 --- /dev/null +++ b/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_1.html @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + O'Hare Noise Compatibility Commission Meeting (via video/teleconference) - O'Hare Noise Compatibility Commission + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+ +
+
+

MEETINGS

+
+
+
+
+

O'Hare Noise Compatibility Commission Meeting (via video/teleconference)

+

Friday, June 5, 2020
+ 8:00am

+
+
+
+

Join Zoom Meeting
+https://us02web.zoom.us/j/89330552020?pwd=VEFISXBlMm1nU0ROdndKMldrUFQyQT09

+ +

Meeting ID: 893 3055 2020
+Password: 283518
+One tap mobile
++13126266799,,89330552020#,,1#,283518# US (Chicago)

+ +


+Dial by your location
+        +1 312 626 6799 US (Chicago)

+
+
Location: (via video/teleconference)
+
+
+
+
+
+ + + +
+ + + +
+
+ diff --git a/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_2.html b/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_2.html new file mode 100644 index 000000000..04fe892f5 --- /dev/null +++ b/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_2.html @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + Fly Quiet Committee (via video/teleconference) - O'Hare Noise Compatibility Commission + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+ +
+
+

MEETINGS

+
+
+
+
+

Fly Quiet Committee (via video/teleconference)

+

Tuesday, May 26, 2020
+ 9:30am

+
+
+
+

Join Zoom Meeting
+https://us02web.zoom.us/j/88174956923?pwd=S0JuSXhmNmh4RXhCeXNncVBuYzY0QT09

+ +

Meeting ID: 881 7495 6923
+Password: 447087

+
+
Location: (via video/teleconference)
+
+
+
+
+
+ + + +
+ + + +
+
+ diff --git a/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_3.html b/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_3.html new file mode 100644 index 000000000..f8a5f145f --- /dev/null +++ b/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_3.html @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + Executive Committee Meeting - O'Hare Noise Compatibility Commission + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+ +
+
+

MEETINGS

+
+
+
+
+

Executive Committee Meeting

+

Monday, February 10, 2020
+10:30am

+
+
+
+
+
Location: Aviation Administration Building, 10510 W. Zemke Rd
+
+
+
+
+
+ + + +
+ + + +
+
+ diff --git a/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_4.html b/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_4.html new file mode 100644 index 000000000..6924f789e --- /dev/null +++ b/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_4.html @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + Executive Committee Meeting - O'Hare Noise Compatibility Commission + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+ +
+
+

MEETINGS

+
+
+
+
+

Executive Committee Meeting

+

Monday, January 6, 2020
+10:30am

+
+
+
+
+
Location: Aviation Administration Building, 10510 W. Zemke Rd
+
+
+
+
+
+ + + +
+ + + +
+
+ diff --git a/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_5.html b/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_5.html new file mode 100644 index 000000000..2f6e81703 --- /dev/null +++ b/tests/files/chi_ohare_noise/chi_ohare_noise_meetings_sub_5.html @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + Fly Quiet Committee - O'Hare Noise Compatibility Commission + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+ +
+
+

MEETINGS

+
+
+
+
+

Fly Quiet Committee

+

Tuesday, December 8, 2020
+ 9:30am

+
+
+
+
+
Location: Chicago Dept. of Aviation Building, 10510 W. Zemke Road, Chicago, IL, Conference Room 1
+
+
+
+
+
+ + + +
+ + + +
+
+ diff --git a/tests/files/chi_ohare_noise_2.html b/tests/files/chi_ohare_noise/chi_ohare_noise_minutes_agenda.html similarity index 100% rename from tests/files/chi_ohare_noise_2.html rename to tests/files/chi_ohare_noise/chi_ohare_noise_minutes_agenda.html diff --git a/tests/test_chi_ohare_noise.py b/tests/test_chi_ohare_noise.py index 7c86b774b..4fda53de2 100644 --- a/tests/test_chi_ohare_noise.py +++ b/tests/test_chi_ohare_noise.py @@ -9,7 +9,7 @@ from city_scrapers.spiders.chi_ohare_noise import ChiOhareNoiseSpider test_response = file_response( - join(dirname(__file__), "files", "chi_ohare_noise.html"), + join(dirname(__file__), "files/chi_ohare_noise", "chi_ohare_noise.html"), url="https://www.oharenoise.org/about-oncc/agendas-and-minutes", ) spider = ChiOhareNoiseSpider() @@ -17,22 +17,22 @@ freezer = freeze_time("2020-07-09") freezer.start() -parsed_items = [item for item in spider.parse(test_response)] +parsed_items = [item for item in spider.ChiOhareNoiseSubSpider1().parse(test_response)] freezer.stop() def test_tests(): - print("Please write some tests for this spider or at least disable this one.") - assert False + print("here") + assert len(parsed_items) == 45 """ Uncomment below """ -# def test_title(): -# assert parsed_items[0]["title"] == "EXPECTED TITLE" +#def test_title(): + #assert parsed_items[0]["title"] == "EXPECTED TITLE" # def test_description(): diff --git a/tests/test_chi_ohare_noise_2.py b/tests/test_chi_ohare_noise_2.py deleted file mode 100644 index 39bb9568d..000000000 --- a/tests/test_chi_ohare_noise_2.py +++ /dev/null @@ -1,86 +0,0 @@ -from datetime import datetime -from os.path import dirname, join - -import pytest -from city_scrapers_core.constants import NOT_CLASSIFIED -from city_scrapers_core.utils import file_response -from freezegun import freeze_time - -from city_scrapers.spiders.chi_ohare_noise_2 import ChiOhareNoise2Spider - -test_response = file_response( - join(dirname(__file__), "files", "chi_ohare_noise_2.html"), - url="https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-", -) -spider = ChiOhareNoise2Spider() - -freezer = freeze_time("2020-07-13") -freezer.start() - -parsed_items = [item for item in spider.parse(test_response)] - -freezer.stop() - - -def test_tests(): - print("Please write some tests for this spider or at least disable this one.") - assert False - - -""" -Uncomment below -""" - -# def test_title(): -# assert parsed_items[0]["title"] == "EXPECTED TITLE" - - -# def test_description(): -# assert parsed_items[0]["description"] == "EXPECTED DESCRIPTION" - - -# def test_start(): -# assert parsed_items[0]["start"] == datetime(2019, 1, 1, 0, 0) - - -# def test_end(): -# assert parsed_items[0]["end"] == datetime(2019, 1, 1, 0, 0) - - -# def test_time_notes(): -# assert parsed_items[0]["time_notes"] == "EXPECTED TIME NOTES" - - -# def test_id(): -# assert parsed_items[0]["id"] == "EXPECTED ID" - - -# def test_status(): -# assert parsed_items[0]["status"] == "EXPECTED STATUS" - - -# def test_location(): -# assert parsed_items[0]["location"] == { -# "name": "EXPECTED NAME", -# "address": "EXPECTED ADDRESS" -# } - - -# def test_source(): -# assert parsed_items[0]["source"] == "EXPECTED URL" - - -# def test_links(): -# assert parsed_items[0]["links"] == [{ -# "href": "EXPECTED HREF", -# "title": "EXPECTED TITLE" -# }] - - -# def test_classification(): -# assert parsed_items[0]["classification"] == NOT_CLASSIFIED - - -# @pytest.mark.parametrize("item", parsed_items) -# def test_all_day(item): -# assert item["all_day"] is False From 964e2ab102c97bba06cea535c561faf4adb626cb Mon Sep 17 00:00:00 2001 From: Donal O'Shea Date: Sat, 22 Aug 2020 13:56:12 +0100 Subject: [PATCH 09/13] Deleted swap files --- city_scrapers/spiders/.chi_ohare_noise.py.swp | Bin 20480 -> 0 bytes tests/.test_chi_ohare_noise.py.swp | Bin 12288 -> 0 bytes .../chi_ohare_noise/.chi_ohare_noise.html.swp | Bin 73728 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 city_scrapers/spiders/.chi_ohare_noise.py.swp delete mode 100644 tests/.test_chi_ohare_noise.py.swp delete mode 100644 tests/files/chi_ohare_noise/.chi_ohare_noise.html.swp diff --git a/city_scrapers/spiders/.chi_ohare_noise.py.swp b/city_scrapers/spiders/.chi_ohare_noise.py.swp deleted file mode 100644 index 2baf67e3b3683e2aa32f066de7df4ffbb46d823c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 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 BxSs$3 diff --git a/tests/.test_chi_ohare_noise.py.swp b/tests/.test_chi_ohare_noise.py.swp deleted file mode 100644 index 6bf8079f47c9cd1593a1797b3ca96f33e86249c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2%WoS+9LFa`f)v_PMh@#bIcN|Z$-d*jC ziIS>tfLkT5962H20_6w@!2$ROK!pQb5aI$tLgEVLJG*Op?IudDMYGB$j%R-Jdwl0% zS(&ZM<;F6dElm+T4-s->ciuYp=WpcArwDNa-}VC0VYcc#`gxUk?lC6u;Ma!^%PxDZ zDSPd9IgElG=15U?xZE!aC$d8piLzt@ZR)q>bhs6C?1))@zy&LX`$wmud$a;tfx{H& z$#!w}EO~Bvs-n7c#(Db4!|R7x>Nc%_RzNGD70?Q31+)TM0j+>m;D4%s3@6ANsO?l* z-{tgmV(c}2t6#JNS^=$qRzNGD70?Q31+)TM0j+>mKr5gXxC<4qT|)l4mk>6I&k^zy_yPprSzvi+)v0&@G>n7U0H2e)un}Iv$5Ey*Rt7+TAN6y@BjK{8i-Ou za_KQ+jvDo=m+IA4y+&J&)>7RVT67}T9x=GMR$nv<$K>j9e^(?aZd}Wz6?bH_N$2E_ zYDLhC9G18kX1Bh!q;eZ*o>*o5T_2>5@@&_Qm=GiRFVt#l^=5NeBJ6xj&4|&;!gBri zB7^KyjFy>pWivanQfbRxD%P;lW^19f9%nf$Ha0woOYV*f*Qkx?#@&;+k-V$!uVN98 zyK6O;>uT}UM>8A_IEj1ar)j#jWNN56U75O2pi}Wrr9dnB>|DeABwmHIBbnrTGQaVF zlX!L+Zu;_Yxci2)RjW6vYmG~-#_Gz5&Y2-e1a%DMj#>%HZj3kf&~<-94wgY|6?-!b zgRJ{b(Cso`(kL3)% zj89DL%`or<%Wo1g420=Jr1U*vB!5})0x_m5)0JXnrdYXvgh>(%HlyLlyh18L3>Ar(E@wFqIHNm#TZ^R{vgk zDJfHw##~a~4Fi0h9a4PiCXsHt=l4xBS{@R}a)OAJdXjr$Fd&=VkwYBJqO^TE7&i8~ ilqQ;d9;Uek0!u-5`hiky3sfnc1nO_!fk}EykpBP+EY&yw diff --git a/tests/files/chi_ohare_noise/.chi_ohare_noise.html.swp b/tests/files/chi_ohare_noise/.chi_ohare_noise.html.swp deleted file mode 100644 index d08c91a001bf043283f1a7b2db65ba38dcd6560d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73728 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 mZ_xuFY^uST{QVRMYvcFRyc9 Date: Fri, 28 Aug 2020 22:15:02 +0100 Subject: [PATCH 10/13] Implemented status and classification methods. --- city_scrapers/spiders/chi_ohare_noise.py | 72 +++++++++++++++++------- tests/test_chi_ohare_noise.py | 66 ++++++++++++++-------- 2 files changed, 96 insertions(+), 42 deletions(-) diff --git a/city_scrapers/spiders/chi_ohare_noise.py b/city_scrapers/spiders/chi_ohare_noise.py index de869f44f..62da9b967 100644 --- a/city_scrapers/spiders/chi_ohare_noise.py +++ b/city_scrapers/spiders/chi_ohare_noise.py @@ -1,7 +1,8 @@ import re from datetime import datetime, timedelta -from city_scrapers_core.constants import NOT_CLASSIFIED +from city_scrapers_core.constants import NOT_CLASSIFIED, CANCELLED, PASSED +from city_scrapers_core.constants import TENTATIVE, COMMITTEE, COMMISSION from city_scrapers_core.items import Meeting from city_scrapers_core.spiders import CityScrapersSpider from scrapy import Request @@ -25,24 +26,25 @@ def parse(self, response): yield Request(url=response.urljoin(surl), callback=self._parse_details) next_page = response.xpath("//div[@class='previousmonth']/a/@href").get() - if next_page is not None: + if next_page is None: yield response.follow(response.urljoin(next_page), callback=self.parse) def _parse_details(self, response): stime = self._parse_start(response) meeting = Meeting( - title=self._parse_title(response), + title=self._parse_title(response).replace('CANCELLED ', '').strip('- '), description=self._parse_description(response), - classification=self._parse_classification(response), start=stime, end=stime + timedelta(hours=1), - all_day=self._parse_all_day(response), - time_notes=self._parse_time_notes(response), + all_day=False, location=self._parse_location(response), links=self._parse_links(response), source=response.url, ) - yield meeting + + meeting = self._get_status(meeting) + meeting = self._parse_classification(meeting) + return meeting def _parse_title(self, response): """Parse or generate meeting title.""" @@ -56,11 +58,17 @@ def _parse_url(self, response): def _parse_description(self, response): """Parse or generate meeting description.""" - return "" + return response.xpath("//div[@class='jev_evdt_desc']/p/text()").get() or "" - def _parse_classification(self, response): + def _parse_classification(self, meeting): """Parse or generate classification from allowed options.""" - return NOT_CLASSIFIED + if 'committee' in meeting['title'].lower(): + meeting['classification'] = COMMITTEE + elif 'commission' in meeting['title'].lower(): + meeting['classification'] = COMMISSION + else: + meeting['classification'] = NOT_CLASSIFIED + return meeting def _parse_start(self, response): """Parse start datetime as a naive datetime object.""" @@ -76,15 +84,6 @@ def _parse_start(self, response): "%A, %B %d, %Y %I:%M%p", ) - def _parse_end(self, response): - """Parse end datetime as a naive datetime object. - Added by pipeline if None""" - return None - - def _parse_time_notes(self, response): - """Parse any additional notes on the timing of the meeting""" - return "" - def _parse_all_day(self, response): """Parse or generate all-day status. Defaults to False.""" return False @@ -117,6 +116,16 @@ def _parse_links(self, response): def _parse_source(self, response): """Parse or generate source.""" return response.url + + def _get_status(self, meeting): + if 'cancelled' in meeting['title'].lower(): + meeting['status'] = CANCELLED + elif datetime.now() > meeting['end']: + meeting['status'] = PASSED + else: + meeting['status'] = TENTATIVE + + return meeting class ChiOhareNoiseSubSpider2: def parse(self, response): @@ -135,9 +144,12 @@ def parse(self, response): links=self._parse_links(item, response), source=self._parse_source(response), ) + + meeting = self._get_status(meeting) + meeting = self._parse_classification(meeting) yield meeting next_page = response.xpath("//li[@class='pagination-next']/a/@href").get() - if next_page is not None: + if next_page is None: yield response.follow(response.urljoin(next_page), callback=self.parse) def _parse_title(self, item): @@ -167,6 +179,26 @@ def _parse_source(self, response): """Parse or generate source.""" return response.url + def _get_status(self, meeting): + if 'cancelled' in meeting['title'].lower(): + meeting['status'] = CANCELLED + elif datetime.now() > meeting['start']: + meeting['status'] = PASSED + else: + meeting['status'] = TENTATIVE + + return meeting + + def _parse_classification(self, meeting): + """Parse or generate classification from allowed options.""" + if 'committee' in meeting['title'].lower(): + meeting['classification'] = COMMITTEE + elif 'commission' in meeting['title'].lower(): + meeting['classification'] = COMMISSION + else: + meeting['classification'] = NOT_CLASSIFIED + return meeting + def start_requests(self): urls = [ "https://www.oharenoise.org/meetings-all/year.listevents/", diff --git a/tests/test_chi_ohare_noise.py b/tests/test_chi_ohare_noise.py index 4fda53de2..10ce68000 100644 --- a/tests/test_chi_ohare_noise.py +++ b/tests/test_chi_ohare_noise.py @@ -8,43 +8,65 @@ from city_scrapers.spiders.chi_ohare_noise import ChiOhareNoiseSpider -test_response = file_response( - join(dirname(__file__), "files/chi_ohare_noise", "chi_ohare_noise.html"), - url="https://www.oharenoise.org/about-oncc/agendas-and-minutes", -) spider = ChiOhareNoiseSpider() -freezer = freeze_time("2020-07-09") +freezer = freeze_time("2020-08-22") freezer.start() +test_response = file_response( + join(dirname(__file__), "files/chi_ohare_noise", "chi_ohare_noise.html"), + url="https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-", +) + parsed_items = [item for item in spider.ChiOhareNoiseSubSpider1().parse(test_response)] freezer.stop() - def test_tests(): - print("here") assert len(parsed_items) == 45 - """ Uncomment below """ -#def test_title(): - #assert parsed_items[0]["title"] == "EXPECTED TITLE" - - -# def test_description(): -# assert parsed_items[0]["description"] == "EXPECTED DESCRIPTION" - - -# def test_start(): -# assert parsed_items[0]["start"] == datetime(2019, 1, 1, 0, 0) - - -# def test_end(): -# assert parsed_items[0]["end"] == datetime(2019, 1, 1, 0, 0) +parsed_sub_items = [] +for i in range(5): + test_response_2 = file_response( + join(dirname(__file__), "files/chi_ohare_noise", "chi_ohare_noise_meetings_sub_{0}.html".format(i+1)), + url="https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-", + ) + parsed_sub_items.append(spider.ChiOhareNoiseSubSpider1()._parse_details(test_response_2)) + +def test_title(): + assert parsed_sub_items[0]["title"] == "O'Hare Noise Compatibility Commission Meeting (via video/teleconference)" + assert parsed_sub_items[1]["title"] == "Fly Quiet Committee (via video/teleconference)" + assert parsed_sub_items[2]["title"] == "Executive Committee Meeting" + assert parsed_sub_items[3]["title"] == "Executive Committee Meeting" + assert parsed_sub_items[4]["title"] == "Fly Quiet Committee" + + +def test_description(): + assert parsed_sub_items[0]["description"] == "Join Zoom Meeting" + assert parsed_sub_items[1]["description"] == "Join Zoom Meeting" + assert parsed_sub_items[2]["description"] == "" + assert parsed_sub_items[3]["description"] == "" + assert parsed_sub_items[4]["description"] == "" + + +def test_start(): + assert parsed_sub_items[0]["start"] == datetime(2020, 6, 5, 8, 0) + assert parsed_sub_items[1]["start"] == datetime(2020, 5, 26, 9, 30) + assert parsed_sub_items[2]["start"] == datetime(2020, 2, 10, 10, 30) + assert parsed_sub_items[3]["start"] == datetime(2020, 1, 6, 10, 30) + assert parsed_sub_items[4]["start"] == datetime(2020, 12, 8, 9, 30) + + +def test_end(): + assert parsed_sub_items[0]["end"] == datetime(2020, 6, 5, 9, 0) + assert parsed_sub_items[1]["end"] == datetime(2020, 5, 26, 10, 30) + assert parsed_sub_items[2]["end"] == datetime(2020, 2, 10, 11, 30) + assert parsed_sub_items[3]["end"] == datetime(2020, 1, 6, 11, 30) + assert parsed_sub_items[4]["end"] == datetime(2020, 12, 8, 10, 30) # def test_time_notes(): From dc8f7fb36e14b21efca6b4fe4bfd1e04b97812b6 Mon Sep 17 00:00:00 2001 From: Donal O'Shea Date: Fri, 28 Aug 2020 22:16:58 +0100 Subject: [PATCH 11/13] Added vim swap file to gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 3ed01c8aa..b90077429 100644 --- a/.gitignore +++ b/.gitignore @@ -133,3 +133,6 @@ src/ logs/*.log # output files: local gitignore added to city_scrapers/local_outputs/ + +# Vim swap files +.*.swp From f3e3066eaf1f276101fd23e30067fce11b275dbb Mon Sep 17 00:00:00 2001 From: Donal O'Shea Date: Fri, 28 Aug 2020 22:56:22 +0100 Subject: [PATCH 12/13] Added all primary tests for first subspider. Matching tests for second subspider should round out the code. --- city_scrapers/spiders/chi_ohare_noise.py | 8 +- logput | 777 ++++++++------- .../chi_ohare_noise_minutes_agenda.html | 905 ++++++++++++------ tests/test_chi_ohare_noise.py | 79 +- 4 files changed, 1054 insertions(+), 715 deletions(-) diff --git a/city_scrapers/spiders/chi_ohare_noise.py b/city_scrapers/spiders/chi_ohare_noise.py index 62da9b967..3a8c26e1b 100644 --- a/city_scrapers/spiders/chi_ohare_noise.py +++ b/city_scrapers/spiders/chi_ohare_noise.py @@ -26,7 +26,7 @@ def parse(self, response): yield Request(url=response.urljoin(surl), callback=self._parse_details) next_page = response.xpath("//div[@class='previousmonth']/a/@href").get() - if next_page is None: + if next_page is not None: yield response.follow(response.urljoin(next_page), callback=self.parse) def _parse_details(self, response): @@ -100,8 +100,8 @@ def _parse_location(self, response): return { # Using reverse indexing for the cases # where there is no building name or no location - "address": addr[-1], - "name": addr[0], + "address": addr[-1].strip(), + "name": addr[0].strip(), } def _parse_links(self, response): @@ -149,7 +149,7 @@ def parse(self, response): meeting = self._parse_classification(meeting) yield meeting next_page = response.xpath("//li[@class='pagination-next']/a/@href").get() - if next_page is None: + if next_page is not None: yield response.follow(response.urljoin(next_page), callback=self.parse) def _parse_title(self, item): diff --git a/logput b/logput index 1dfef2285..7f6b6d71c 100644 --- a/logput +++ b/logput @@ -1,7 +1,7 @@ -2020-08-19 18:04:13 [scrapy.utils.log] INFO: Scrapy 2.1.0 started (bot: city_scrapers) -2020-08-19 18:04:13 [scrapy.utils.log] INFO: Versions: lxml 4.5.1.0, libxml2 2.9.10, cssselect 1.1.0, parsel 1.6.0, w3lib 1.22.0, Twisted 20.3.0, Python 3.8.5 (default, Jul 21 2020, 10:48:26) - [Clang 11.0.3 (clang-1103.0.32.62)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1g 21 Apr 2020), cryptography 2.9.2, Platform macOS-10.15.5-x86_64-i386-64bit -2020-08-19 18:04:13 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor -2020-08-19 18:04:13 [scrapy.crawler] INFO: Overridden settings: +2020-08-28 21:56:35 [scrapy.utils.log] INFO: Scrapy 2.1.0 started (bot: city_scrapers) +2020-08-28 21:56:35 [scrapy.utils.log] INFO: Versions: lxml 4.5.1.0, libxml2 2.9.10, cssselect 1.1.0, parsel 1.6.0, w3lib 1.22.0, Twisted 20.3.0, Python 3.8.5 (default, Jul 21 2020, 10:48:26) - [Clang 11.0.3 (clang-1103.0.32.62)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1g 21 Apr 2020), cryptography 2.9.2, Platform macOS-10.15.5-x86_64-i386-64bit +2020-08-28 21:56:35 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor +2020-08-28 21:56:35 [scrapy.crawler] INFO: Overridden settings: {'AUTOTHROTTLE_ENABLED': True, 'AUTOTHROTTLE_MAX_DELAY': 30.0, 'AUTOTHROTTLE_START_DELAY': 1.0, @@ -14,14 +14,14 @@ 'SPIDER_MODULES': ['city_scrapers.spiders'], 'USER_AGENT': 'City Scrapers [development mode]. Learn more and say hello at ' 'https://cityscrapers.org/'} -2020-08-19 18:04:13 [scrapy.extensions.telnet] INFO: Telnet Password: e22e2a6d53a960ec -2020-08-19 18:04:13 [scrapy.middleware] INFO: Enabled extensions: +2020-08-28 21:56:35 [scrapy.extensions.telnet] INFO: Telnet Password: b8a123995da8341b +2020-08-28 21:56:35 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.memusage.MemoryUsage', 'scrapy.extensions.logstats.LogStats', 'scrapy.extensions.throttle.AutoThrottle'] -2020-08-19 18:04:13 [scrapy.middleware] INFO: Enabled downloader middlewares: +2020-08-28 21:56:35 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', @@ -33,200 +33,256 @@ 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] -2020-08-19 18:04:13 [scrapy.middleware] INFO: Enabled spider middlewares: +2020-08-28 21:56:35 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] -2020-08-19 18:04:13 [scrapy.middleware] INFO: Enabled item pipelines: +2020-08-28 21:56:35 [scrapy.middleware] INFO: Enabled item pipelines: ['city_scrapers_core.pipelines.MeetingPipeline'] -2020-08-19 18:04:13 [scrapy.core.engine] INFO: Spider opened -2020-08-19 18:04:13 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) -2020-08-19 18:04:13 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 -2020-08-19 18:04:13 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-08-19 18:04:14 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-08-19 18:04:15 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 8, 21, 2, 0), +2020-08-28 21:56:35 [scrapy.core.engine] INFO: Spider opened +2020-08-28 21:56:35 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) +2020-08-28 21:56:35 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 +2020-08-28 21:56:36 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-08-28 21:56:37 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-08-28 21:56:37 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None) +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 8, 31, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=651', + 'title': 'Agenda'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 8, 31, 0, 0), + 'status': 'tentative', + 'title': 'Executive Committee'} +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 8, 18, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=644', + 'title': 'Agenda'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 8, 18, 0, 0), + 'status': 'passed', + 'title': 'Technical Committee'} +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 6, 23, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=632', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=650', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 6, 23, 0, 0), + 'status': 'passed', + 'title': 'Fly Quiet Committee'} +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 6, 1, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=629', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=646', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 6, 1, 0, 0), + 'status': 'passed', + 'title': 'Executive Committee'} +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 5, 19, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=624', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=648', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 5, 19, 0, 0), + 'status': 'passed', + 'title': 'Technical Committee'} +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 5, 13, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=623', + 'title': 'Agenda'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 5, 13, 0, 0), + 'status': 'passed', + 'title': 'Residential Sound Insulation Committee'} +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 4, 27, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=613', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=649', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 4, 27, 0, 0), + 'status': 'passed', + 'title': 'Executive Committee'} +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 4, 20, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=612', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=640', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 4, 20, 0, 0), + 'status': 'passed', + 'title': 'Ad Hoc Governance Committee'} +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 3, 30, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=609', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=638', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 3, 30, 0, 0), + 'status': 'passed', + 'title': 'Executive Committee'} +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 2, 18, 2, 0), + 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=603', + 'title': 'Agenda'}, + {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=618', + 'title': 'Minutes'}], + 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', + 'start': datetime.datetime(2020, 2, 18, 0, 0), + 'status': 'passed', + 'title': 'Ad Hoc Governance Committee'} +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 8, 20, 2, 0), 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=645', 'title': 'Agenda'}], 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', - 'start': datetime.datetime(2020, 8, 21, 0, 0), + 'start': datetime.datetime(2020, 8, 20, 0, 0), + 'status': 'passed', 'title': 'Fly Quiet Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 8, 13, 2, 0), +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Not classified', + 'end': datetime.datetime(2020, 8, 13, 2, 0), 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=643', 'title': 'Agenda'}], 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', 'start': datetime.datetime(2020, 8, 13, 0, 0), + 'status': 'passed', 'title': 'Strategic Planning'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 6, 5, 2, 0), +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Not classified', + 'end': datetime.datetime(2020, 6, 5, 2, 0), 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=631', 'title': 'Agenda'}], 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', 'start': datetime.datetime(2020, 6, 5, 0, 0), + 'status': 'passed', 'title': 'ONCC General Meeting'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 5, 26, 2, 0), +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 5, 26, 2, 0), 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=627', 'title': 'Agenda'}, {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=642', 'title': 'Minutes'}], 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', 'start': datetime.datetime(2020, 5, 26, 0, 0), + 'status': 'passed', 'title': 'Fly Quiet Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 5, 19, 2, 0), +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 5, 19, 2, 0), 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=625', 'title': 'Agenda'}], 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', 'start': datetime.datetime(2020, 5, 19, 0, 0), + 'status': 'passed', 'title': 'Ad Hoc Governance Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 5, 12, 2, 0), +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 5, 12, 2, 0), 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=621', 'title': 'Agenda'}, {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=641', 'title': 'Minutes'}], 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', 'start': datetime.datetime(2020, 5, 12, 0, 0), + 'status': 'passed', 'title': 'Ad-Hoc Nominating Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 4, 21, 2, 0), +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 4, 21, 2, 0), 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=611', 'title': 'Agenda'}, {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=630', 'title': 'Minutes'}], 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', 'start': datetime.datetime(2020, 4, 21, 0, 0), + 'status': 'passed', 'title': 'Fly Quiet Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 4, 14, 2, 0), +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 4, 14, 2, 0), 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=610', 'title': 'Agenda'}, {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=639', 'title': 'Minutes'}], 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', 'start': datetime.datetime(2020, 4, 14, 0, 0), + 'status': 'passed', 'title': 'Technical Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 2, 25, 2, 0), +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Committee', + 'end': datetime.datetime(2020, 2, 25, 2, 0), 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=605', 'title': 'Agenda'}, {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=615', 'title': 'Minutes'}], 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', 'start': datetime.datetime(2020, 2, 25, 0, 0), + 'status': 'passed', 'title': 'Fly Quiet Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 2, 14, 2, 0), +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> +{'classification': 'Not classified', + 'end': datetime.datetime(2020, 2, 14, 2, 0), 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=604', 'title': 'Agenda'}, {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=637', 'title': 'Minutes'}], 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', 'start': datetime.datetime(2020, 2, 14, 0, 0), + 'status': 'passed', 'title': 'ONCC General Meeting'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 8, 18, 2, 0), - 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=644', - 'title': 'Agenda'}, - {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=647', - 'title': 'Minutes'}], - 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', - 'start': datetime.datetime(2020, 8, 18, 0, 0), - 'title': 'Technical Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 6, 23, 2, 0), - 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=632', - 'title': 'Agenda'}], - 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', - 'start': datetime.datetime(2020, 6, 23, 0, 0), - 'title': 'Fly Quiet Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 6, 1, 2, 0), - 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=629', - 'title': 'Agenda'}, - {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=646', - 'title': 'Minutes'}], - 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', - 'start': datetime.datetime(2020, 6, 1, 0, 0), - 'title': 'Executive Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 5, 19, 2, 0), - 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=624', - 'title': 'Agenda'}], - 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', - 'start': datetime.datetime(2020, 5, 19, 0, 0), - 'title': 'Technical Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 5, 13, 2, 0), - 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=623', - 'title': 'Agenda'}], - 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', - 'start': datetime.datetime(2020, 5, 13, 0, 0), - 'title': 'Residential Sound Insulation Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 4, 27, 2, 0), - 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=613', - 'title': 'Agenda'}], - 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', - 'start': datetime.datetime(2020, 4, 27, 0, 0), - 'title': 'Executive Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 4, 20, 2, 0), - 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=612', - 'title': 'Agenda'}, - {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=640', - 'title': 'Minutes'}], - 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', - 'start': datetime.datetime(2020, 4, 20, 0, 0), - 'title': 'Ad Hoc Governance Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 3, 30, 2, 0), - 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=609', - 'title': 'Agenda'}, - {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=638', - 'title': 'Minutes'}], - 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', - 'start': datetime.datetime(2020, 3, 30, 0, 0), - 'title': 'Executive Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 2, 18, 2, 0), - 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=603', - 'title': 'Agenda'}, - {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=618', - 'title': 'Minutes'}], - 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', - 'start': datetime.datetime(2020, 2, 18, 0, 0), - 'title': 'Ad Hoc Governance Committee'} -2020-08-19 18:04:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/about-oncc/agendas-and-minutes> -{'end': datetime.datetime(2020, 2, 10, 2, 0), - 'links': [{'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=599', - 'title': 'Agenda'}, - {'href': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes?format=raw&task=download&fid=616', - 'title': 'Minutes'}], - 'source': 'https://www.oharenoise.org/about-oncc/agendas-and-minutes', - 'start': datetime.datetime(2020, 2, 10, 0, 0), - 'title': 'Executive Committee'} -2020-08-19 18:04:15 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:16 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/30/308/-/executive-committee-meeting> +2020-08-28 21:56:38 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/03/316/-/cancelled-o-hare-noise-compatibility-commission-meeting> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Commission', + 'description': 'All meetings are open to the public. We encourage your ' + 'participation.', + 'end': datetime.datetime(2020, 4, 3, 9, 0), + 'links': [], + 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', + 'name': 'Cafe La Cave '}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/03/316/-/cancelled-o-hare-noise-compatibility-commission-meeting', + 'start': datetime.datetime(2020, 4, 3, 8, 0), + 'status': 'passed', + 'title': "O'Hare Noise Compatibility Commission Meeting"} +2020-08-28 21:56:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:39 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/30/308/-/executive-committee-meeting> +{'all_day': False, + 'classification': 'Committee', + 'description': '*NOTE CHANGE OF TIME - 11:00AM*', 'end': datetime.datetime(2020, 3, 30, 12, 0), 'links': [], 'location': {'address': '', 'name': ''}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/30/308/-/executive-committee-meeting', 'start': datetime.datetime(2020, 3, 30, 11, 0), - 'time_notes': '', + 'status': 'passed', 'title': 'Executive Committee Meeting'} -2020-08-19 18:04:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:16 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/24/299/-/cancelled-fly-quiet-committee> +2020-08-28 21:56:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:39 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/24/299/-/cancelled-fly-quiet-committee> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 3, 24, 10, 30), 'links': [], @@ -234,24 +290,24 @@ 'name': 'Chicago Dept. of Aviation Building'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/24/299/-/cancelled-fly-quiet-committee', 'start': datetime.datetime(2020, 3, 24, 9, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Fly Quiet Committee'} -2020-08-19 18:04:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:16 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/18/335/-/cancelled-governance-committee> +2020-08-28 21:56:39 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:40 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/18/335/-/cancelled-governance-committee> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 3, 18, 10, 30), 'links': [], 'location': {'address': '', 'name': ''}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/18/335/-/cancelled-governance-committee', 'start': datetime.datetime(2020, 3, 18, 9, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Governance Committee'} -2020-08-19 18:04:17 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:17 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/17/322/-/cancelled-technical-committee-meeting> +2020-08-28 21:56:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:40 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/17/322/-/cancelled-technical-committee-meeting> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 3, 17, 10, 0), 'links': [], @@ -259,12 +315,12 @@ 'name': 'Mount Prospect Village Hall'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/03/17/322/-/cancelled-technical-committee-meeting', 'start': datetime.datetime(2020, 3, 17, 9, 0), - 'time_notes': '', + 'status': 'passed', 'title': 'Technical Committee Meeting'} -2020-08-19 18:04:17 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:17 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/25/298/-/fly-quiet-committee> +2020-08-28 21:56:40 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:40 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/25/298/-/fly-quiet-committee> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 2, 25, 10, 30), 'links': [], @@ -272,12 +328,12 @@ 'name': 'Chicago Dept. of Aviation Building'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/25/298/-/fly-quiet-committee', 'start': datetime.datetime(2020, 2, 25, 9, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Fly Quiet Committee'} -2020-08-19 18:04:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/18/336/-/governance-committee> +2020-08-28 21:56:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:41 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/18/336/-/governance-committee> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 2, 18, 10, 30), 'links': [], @@ -285,25 +341,26 @@ 'name': 'Chicago Dept. of Aviation Building'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/18/336/-/governance-committee', 'start': datetime.datetime(2020, 2, 18, 9, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Governance Committee'} -2020-08-19 18:04:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/14/296/-/o-hare-noise-compatibility-commission-meeting> +2020-08-28 21:56:41 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:41 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/14/296/-/o-hare-noise-compatibility-commission-meeting> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Commission', + 'description': 'All meetings are open to the public. We encourage your ' + 'participation.', 'end': datetime.datetime(2020, 2, 14, 9, 0), 'links': [], 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', 'name': 'Cafe La Cave '}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/14/296/-/o-hare-noise-compatibility-commission-meeting', 'start': datetime.datetime(2020, 2, 14, 8, 0), - 'time_notes': '', + 'status': 'passed', 'title': "O'Hare Noise Compatibility Commission Meeting"} -2020-08-19 18:04:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/10/307/-/executive-committee-meeting> +2020-08-28 21:56:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:42 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/10/307/-/executive-committee-meeting> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 2, 10, 11, 30), 'links': [], @@ -311,12 +368,12 @@ 'name': 'Aviation Administration Building'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/02/10/307/-/executive-committee-meeting', 'start': datetime.datetime(2020, 2, 10, 10, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Executive Committee Meeting'} -2020-08-19 18:04:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/29/294/-/residential-sound-insulation-committee-meeting> +2020-08-28 21:56:42 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:42 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/29/294/-/residential-sound-insulation-committee-meeting> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 1, 29, 10, 30), 'links': [], @@ -324,12 +381,12 @@ 'name': 'Norridge Village Hall'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/29/294/-/residential-sound-insulation-committee-meeting', 'start': datetime.datetime(2020, 1, 29, 9, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Residential Sound Insulation Committee Meeting'} -2020-08-19 18:04:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/28/293/-/fly-quiet-committee-note-change-of-location> +2020-08-28 21:56:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:43 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/28/293/-/fly-quiet-committee-note-change-of-location> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 1, 28, 10, 30), 'links': [], @@ -337,12 +394,12 @@ 'name': 'Cafe la Cave'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/28/293/-/fly-quiet-committee-note-change-of-location', 'start': datetime.datetime(2020, 1, 28, 9, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Fly Quiet Committee *NOTE CHANGE OF LOCATION*'} -2020-08-19 18:04:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/21/295/-/cancelled-technical-committee-meeting> +2020-08-28 21:56:43 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:43 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/21/295/-/cancelled-technical-committee-meeting> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 1, 21, 10, 0), 'links': [], @@ -350,12 +407,13 @@ 'name': 'Mount Prospect Village Hall'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/21/295/-/cancelled-technical-committee-meeting', 'start': datetime.datetime(2020, 1, 21, 9, 0), - 'time_notes': '', + 'status': 'passed', 'title': 'Technical Committee Meeting'} -2020-08-19 18:04:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/16/334/-/governance-committee> +2020-08-28 21:56:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:44 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/16/334/-/governance-committee> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 1, 16, 10, 30), 'links': [], @@ -363,25 +421,25 @@ 'name': 'Chicago Dept. of Aviation Building'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/16/334/-/governance-committee', 'start': datetime.datetime(2020, 1, 16, 9, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Governance Committee'} -2020-08-19 18:04:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/10/315/-/o-hare-noise-compatibility-commission-meeting> +2020-08-28 21:56:44 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/10/315/-/o-hare-noise-compatibility-commission-meeting> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Commission', + 'description': 'All meetings are open to the public. We encourage your ' + 'participation.', 'end': datetime.datetime(2020, 1, 10, 9, 0), 'links': [], 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', 'name': 'Cafe La Cave '}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/10/315/-/o-hare-noise-compatibility-commission-meeting', 'start': datetime.datetime(2020, 1, 10, 8, 0), - 'time_notes': '', + 'status': 'passed', 'title': "O'Hare Noise Compatibility Commission Meeting"} -2020-08-19 18:04:21 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:21 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/06/297/-/executive-committee-meeting> +2020-08-28 21:56:44 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:45 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/06/297/-/executive-committee-meeting> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 1, 6, 11, 30), 'links': [], @@ -389,12 +447,12 @@ 'name': 'Aviation Administration Building'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/01/06/297/-/executive-committee-meeting', 'start': datetime.datetime(2020, 1, 6, 10, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Executive Committee Meeting'} -2020-08-19 18:04:21 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:21 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/12/08/306/-/fly-quiet-committee> +2020-08-28 21:56:45 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:45 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/12/08/306/-/fly-quiet-committee> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 12, 8, 10, 30), 'links': [], @@ -402,12 +460,12 @@ 'name': 'Chicago Dept. of Aviation Building'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/12/08/306/-/fly-quiet-committee', 'start': datetime.datetime(2020, 12, 8, 9, 30), - 'time_notes': '', + 'status': 'tentative', 'title': 'Fly Quiet Committee'} -2020-08-19 18:04:21 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:21 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/17/327/-/technical-committee-meeting> +2020-08-28 21:56:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:46 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/17/327/-/technical-committee-meeting> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 11, 17, 10, 0), 'links': [], @@ -415,25 +473,12 @@ 'name': 'Mount Prospect Village Hall'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/17/327/-/technical-committee-meeting', 'start': datetime.datetime(2020, 11, 17, 9, 0), - 'time_notes': '', + 'status': 'tentative', 'title': 'Technical Committee Meeting'} -2020-08-19 18:04:22 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:22 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:22 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/06/321/-/o-hare-noise-compatibility-commission-meeting> -{'all_day': False, - 'classification': 'Not classified', - 'description': '', - 'end': datetime.datetime(2020, 11, 6, 9, 0), - 'links': [], - 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', - 'name': 'Cafe La Cave '}, - 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/06/321/-/o-hare-noise-compatibility-commission-meeting', - 'start': datetime.datetime(2020, 11, 6, 8, 0), - 'time_notes': '', - 'title': "O'Hare Noise Compatibility Commission Meeting"} -2020-08-19 18:04:22 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/11/331/-/residential-sound-insulation-committee-meeting> +2020-08-28 21:56:46 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:46 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/11/331/-/residential-sound-insulation-committee-meeting> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 11, 11, 10, 30), 'links': [], @@ -441,12 +486,26 @@ 'name': 'Norridge Village Hall'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/11/331/-/residential-sound-insulation-committee-meeting', 'start': datetime.datetime(2020, 11, 11, 9, 30), - 'time_notes': '', + 'status': 'tentative', 'title': 'Residential Sound Insulation Committee Meeting'} -2020-08-19 18:04:23 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:23 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/02/314/-/executive-committee-meeting> +2020-08-28 21:56:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:47 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/06/321/-/o-hare-noise-compatibility-commission-meeting> +{'all_day': False, + 'classification': 'Commission', + 'description': 'All meetings are open to the public. We encourage your ' + 'participation.', + 'end': datetime.datetime(2020, 11, 6, 9, 0), + 'links': [], + 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', + 'name': 'Cafe La Cave '}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/06/321/-/o-hare-noise-compatibility-commission-meeting', + 'start': datetime.datetime(2020, 11, 6, 8, 0), + 'status': 'tentative', + 'title': "O'Hare Noise Compatibility Commission Meeting"} +2020-08-28 21:56:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:47 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/02/314/-/executive-committee-meeting> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 11, 2, 11, 30), 'links': [], @@ -454,12 +513,12 @@ 'name': 'Aviation Administration Building'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/11/02/314/-/executive-committee-meeting', 'start': datetime.datetime(2020, 11, 2, 10, 30), - 'time_notes': '', + 'status': 'tentative', 'title': 'Executive Committee Meeting'} -2020-08-19 18:04:23 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:24 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/27/305/-/fly-quiet-committee> +2020-08-28 21:56:47 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/27/305/-/fly-quiet-committee> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 10, 27, 10, 30), 'links': [], @@ -467,12 +526,12 @@ 'name': 'Chicago Dept. of Aviation Building'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/27/305/-/fly-quiet-committee', 'start': datetime.datetime(2020, 10, 27, 9, 30), - 'time_notes': '', + 'status': 'tentative', 'title': 'Fly Quiet Committee'} -2020-08-19 18:04:24 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:24 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/13/326/-/technical-committee-meeting> +2020-08-28 21:56:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/13/326/-/technical-committee-meeting> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 10, 13, 10, 0), 'links': [], @@ -480,25 +539,26 @@ 'name': 'Mount Prospect Village Hall'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/13/326/-/technical-committee-meeting', 'start': datetime.datetime(2020, 10, 13, 9, 0), - 'time_notes': '', + 'status': 'tentative', 'title': 'Technical Committee Meeting'} -2020-08-19 18:04:25 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:25 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/02/320/-/o-hare-noise-compatibility-commission-meeting> +2020-08-28 21:56:48 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/02/320/-/o-hare-noise-compatibility-commission-meeting> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Commission', + 'description': 'All meetings are open to the public. We encourage your ' + 'participation.', 'end': datetime.datetime(2020, 10, 2, 9, 0), 'links': [], 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', 'name': 'Cafe La Cave '}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/10/02/320/-/o-hare-noise-compatibility-commission-meeting', 'start': datetime.datetime(2020, 10, 2, 8, 0), - 'time_notes': '', + 'status': 'tentative', 'title': "O'Hare Noise Compatibility Commission Meeting"} -2020-08-19 18:04:25 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:25 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/28/312/-/executive-committee-meeting> +2020-08-28 21:56:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/28/312/-/executive-committee-meeting> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 9, 28, 11, 30), 'links': [], @@ -506,12 +566,12 @@ 'name': 'Aviation Administration Building'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/28/312/-/executive-committee-meeting', 'start': datetime.datetime(2020, 9, 28, 10, 30), - 'time_notes': '', + 'status': 'tentative', 'title': 'Executive Committee Meeting'} -2020-08-19 18:04:25 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:25 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/22/304/-/fly-quiet-committee> +2020-08-28 21:56:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/22/304/-/fly-quiet-committee> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 9, 22, 10, 30), 'links': [], @@ -519,12 +579,12 @@ 'name': 'Chicago Dept. of Aviation Building'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/22/304/-/fly-quiet-committee', 'start': datetime.datetime(2020, 9, 22, 9, 30), - 'time_notes': '', + 'status': 'tentative', 'title': 'Fly Quiet Committee'} -2020-08-19 18:04:26 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:26 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/15/325/-/technical-committee-meeting> +2020-08-28 21:56:49 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:50 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/15/325/-/technical-committee-meeting> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 9, 15, 10, 0), 'links': [], @@ -532,12 +592,12 @@ 'name': 'Mount Prospect Village Hall'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/15/325/-/technical-committee-meeting', 'start': datetime.datetime(2020, 9, 15, 9, 0), - 'time_notes': '', + 'status': 'tentative', 'title': 'Technical Committee Meeting'} -2020-08-19 18:04:26 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:26 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/09/330/-/residential-sound-insulation-committee-meeting> +2020-08-28 21:56:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:50 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/09/330/-/residential-sound-insulation-committee-meeting> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 9, 9, 10, 30), 'links': [], @@ -545,53 +605,55 @@ 'name': 'Norridge Village Hall'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/09/330/-/residential-sound-insulation-committee-meeting', 'start': datetime.datetime(2020, 9, 9, 9, 30), - 'time_notes': '', + 'status': 'tentative', 'title': 'Residential Sound Insulation Committee Meeting'} -2020-08-19 18:04:26 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:26 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/04/319/-/o-hare-noise-compatibility-commission-meeting> +2020-08-28 21:56:50 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:50 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/04/319/-/o-hare-noise-compatibility-commission-meeting> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Commission', + 'description': 'All meetings are open to the public. We encourage your ' + 'participation.', 'end': datetime.datetime(2020, 9, 4, 9, 0), 'links': [], 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', 'name': 'Cafe La Cave '}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/09/04/319/-/o-hare-noise-compatibility-commission-meeting', 'start': datetime.datetime(2020, 9, 4, 8, 0), - 'time_notes': '', + 'status': 'tentative', 'title': "O'Hare Noise Compatibility Commission Meeting"} -2020-08-19 18:04:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:27 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/31/313/-/executive-committee-meeting> +2020-08-28 21:56:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:51 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/31/313/-/executive-committee-meeting-via-video-teleconference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Committee', + 'description': 'Join Zoom Meeting', 'end': datetime.datetime(2020, 8, 31, 11, 30), - 'links': [], - 'location': {'address': ' 10510 W. Zemke Rd', - 'name': 'Aviation Administration Building'}, - 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/31/313/-/executive-committee-meeting', + 'links': [{'href': 'https://us02web.zoom.us/j/86888001509?pwd=OG5WYStlM2Y2dk5kT3lpN0hHendXZz09', + 'title': 'Zoom Link'}], + 'location': {'address': 'via video/teleconference', + 'name': 'via video/teleconference'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/31/313/-/executive-committee-meeting-via-video-teleconference', 'start': datetime.datetime(2020, 8, 31, 10, 30), - 'time_notes': '', - 'title': 'Executive Committee Meeting'} -2020-08-19 18:04:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:27 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/20/303/-/fly-quiet-committee-note-change-of-date-via-video-teleconference> + 'status': 'tentative', + 'title': 'Executive Committee Meeting (via video/teleconference)'} +2020-08-28 21:56:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:51 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/20/303/-/fly-quiet-committee-note-change-of-date-via-video-teleconference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Committee', + 'description': 'Join Zoom Meeting', 'end': datetime.datetime(2020, 8, 20, 10, 30), 'links': [], 'location': {'address': 'via video/teleconference', 'name': 'via video/teleconference'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/20/303/-/fly-quiet-committee-note-change-of-date-via-video-teleconference', 'start': datetime.datetime(2020, 8, 20, 9, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Fly Quiet Committee *Note Change of Date* (via ' 'video/teleconference)'} -2020-08-19 18:04:27 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:27 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/18/332/-/technical-committee-meeting-via-video-teleconference> +2020-08-28 21:56:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:51 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/18/332/-/technical-committee-meeting-via-video-teleconference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Committee', + 'description': 'Join Zoom Meeting', 'end': datetime.datetime(2020, 8, 18, 10, 0), 'links': [{'href': 'https://us02web.zoom.us/j/86250992967?pwd=THZSZGk5TW1GeDdMYXpUSXpQaW1wZz09', 'title': 'Zoom Link'}], @@ -599,13 +661,13 @@ 'name': 'via video/teleconference'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/18/332/-/technical-committee-meeting-via-video-teleconference', 'start': datetime.datetime(2020, 8, 18, 9, 0), - 'time_notes': '', + 'status': 'passed', 'title': 'Technical Committee Meeting (via video/teleconference)'} -2020-08-19 18:04:28 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:28 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/13/311/-/executive-committee-strategic-planning-session-via-video-teleconference> +2020-08-28 21:56:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/13/311/-/executive-committee-strategic-planning-session-via-video-teleconference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Committee', + 'description': 'Join Zoom Meeting', 'end': datetime.datetime(2020, 8, 13, 10, 0), 'links': [{'href': 'https://us02web.zoom.us/j/88533718602?pwd=MUdhUGpNN0lSM2QwWng1NWpuTERQZz09', 'title': 'Zoom Link'}], @@ -613,14 +675,14 @@ 'name': 'via video or audio conference'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/08/13/311/-/executive-committee-strategic-planning-session-via-video-teleconference', 'start': datetime.datetime(2020, 8, 13, 9, 0), - 'time_notes': '', + 'status': 'passed', 'title': 'Executive Committee Strategic Planning Session (via ' 'video/teleconference)'} -2020-08-19 18:04:28 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:28 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/23/302/-/fly-quiet-committee-via-video-teleconference> +2020-08-28 21:56:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/23/302/-/fly-quiet-committee-via-video-teleconference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Committee', + 'description': 'Join Zoom Meeting', 'end': datetime.datetime(2020, 6, 23, 10, 30), 'links': [{'href': 'https://us02web.zoom.us/j/87533207181?pwd=NDRRaWJVYTJnZWUrbk1lcmFzQk5Edz09', 'title': 'Zoom Link'}], @@ -628,13 +690,13 @@ 'name': '(via video/teleconference)'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/23/302/-/fly-quiet-committee-via-video-teleconference', 'start': datetime.datetime(2020, 6, 23, 9, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Fly Quiet Committee (via video/teleconference)'} -2020-08-19 18:04:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:29 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/05/318/-/o-hare-noise-compatibility-commission-meeting-via-video-teleconference> +2020-08-28 21:56:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/05/318/-/o-hare-noise-compatibility-commission-meeting-via-video-teleconference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Commission', + 'description': 'Join Zoom Meeting', 'end': datetime.datetime(2020, 6, 5, 9, 0), 'links': [{'href': 'https://us02web.zoom.us/j/89330552020?pwd=VEFISXBlMm1nU0ROdndKMldrUFQyQT09', 'title': 'Zoom Link'}], @@ -642,14 +704,14 @@ 'name': '(via video/teleconference)'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/05/318/-/o-hare-noise-compatibility-commission-meeting-via-video-teleconference', 'start': datetime.datetime(2020, 6, 5, 8, 0), - 'time_notes': '', + 'status': 'passed', 'title': "O'Hare Noise Compatibility Commission Meeting (via " 'video/teleconference)'} -2020-08-19 18:04:29 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:29 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/01/310/-/executive-committee-meeting-via-video-teleconference> +2020-08-28 21:56:52 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/06/01/310/-/executive-committee-meeting-via-video-teleconference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Committee', + 'description': 'Join Zoom Meeting', 'end': datetime.datetime(2020, 6, 1, 11, 30), 'links': [{'href': 'https://us02web.zoom.us/j/83620545177?pwd=M0VaeU00UVJIc3AyeVg3SUNGUk5DZz09 (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:30 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/26/301/-/fly-quiet-committee-via-video-teleconference> +2020-08-28 21:56:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/26/301/-/fly-quiet-committee-via-video-teleconference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Committee', + 'description': 'Join Zoom Meeting', 'end': datetime.datetime(2020, 5, 26, 10, 30), 'links': [{'href': 'https://us02web.zoom.us/j/88174956923?pwd=S0JuSXhmNmh4RXhCeXNncVBuYzY0QT09', 'title': 'Zoom Link'}], @@ -671,13 +733,13 @@ 'name': '(via video/teleconference)'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/26/301/-/fly-quiet-committee-via-video-teleconference', 'start': datetime.datetime(2020, 5, 26, 9, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Fly Quiet Committee (via video/teleconference)'} -2020-08-19 18:04:30 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:30 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/339/-/ad-hoc-governance-committee-via-video-teleconference> +2020-08-28 21:56:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/339/-/ad-hoc-governance-committee-via-video-teleconference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Committee', + 'description': 'Join Zoom Meeting', 'end': datetime.datetime(2020, 5, 19, 14, 0), 'links': [{'href': 'https://us02web.zoom.us/j/84033580212?pwd=N0xiTzVFVlRnZmlEVHNWVW5KREthdz09', 'title': 'Zoom Link'}], @@ -685,13 +747,14 @@ 'name': '(via video/teleconference)'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/339/-/ad-hoc-governance-committee-via-video-teleconference', 'start': datetime.datetime(2020, 5, 19, 13, 0), - 'time_notes': '', + 'status': 'passed', 'title': 'Ad Hoc Governance Committee (via video/teleconference)'} -2020-08-19 18:04:30 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:30 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/324/-/technical-committee-meeting-via-video-teleconference> +2020-08-28 21:56:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:53 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/324/-/technical-committee-meeting-via-video-teleconference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Committee', + 'description': 'Join Zoom Meeting', 'end': datetime.datetime(2020, 5, 19, 10, 0), 'links': [{'href': 'https://us02web.zoom.us/j/87544693904?pwd=bzF0QzUrd0k0dFNTa0lVQ3FLOWFrUT09', 'title': 'Zoom Link'}], @@ -699,13 +762,12 @@ 'name': '(via video/teleconference)'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/19/324/-/technical-committee-meeting-via-video-teleconference', 'start': datetime.datetime(2020, 5, 19, 9, 0), - 'time_notes': '', + 'status': 'passed', 'title': 'Technical Committee Meeting (via video/teleconference)'} -2020-08-19 18:04:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:31 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/13/329/-/residential-sound-insulation-committee-meeting-via-video-teleconference> +2020-08-28 21:56:54 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/13/329/-/residential-sound-insulation-committee-meeting-via-video-teleconference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Committee', + 'description': 'Join Zoom Meeting', 'end': datetime.datetime(2020, 5, 13, 10, 30), 'links': [{'href': 'https://us02web.zoom.us/j/89710382957?pwd=SFcxczBqbDNiaXJGcS84SXY1bC9NUT09', 'title': 'Zoom Link'}], @@ -715,14 +777,14 @@ 'https://us02web.zoom.us/j/89710382957?pwd=SFcxczBqbDNiaXJGcS84SXY1bC9NUT09'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/13/329/-/residential-sound-insulation-committee-meeting-via-video-teleconference', 'start': datetime.datetime(2020, 5, 13, 9, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Residential Sound Insulation Committee Meeting (via ' 'video/teleconference)'} -2020-08-19 18:04:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:31 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/12/338/-/ad-hoc-nominating-committee-via-video-teleconference> +2020-08-28 21:56:54 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:54 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/12/338/-/ad-hoc-nominating-committee-via-video-teleconference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Committee', + 'description': 'Join meeting:\xa0', 'end': datetime.datetime(2020, 5, 12, 12, 0), 'links': [{'href': 'https://us02web.zoom.us/j/87193530291?pwd=Q2J1dE5lTk5hQVlLWDdNUGFCMmc4UT09', 'title': 'Zoom Link'}], @@ -730,24 +792,26 @@ 'name': '(via video/teleconference)'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/12/338/-/ad-hoc-nominating-committee-via-video-teleconference', 'start': datetime.datetime(2020, 5, 12, 11, 0), - 'time_notes': '', + 'status': 'passed', 'title': 'Ad Hoc Nominating Committee (via video/teleconference)'} -2020-08-19 18:04:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:31 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/01/317/-/cancelled-o-hare-noise-compatibility-commission-meeting> +2020-08-28 21:56:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:55 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/21/300/-/fly-quiet-committee-via-video-or-audio-conference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', - 'end': datetime.datetime(2020, 5, 1, 9, 0), - 'links': [], - 'location': {'address': '', 'name': ''}, - 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/01/317/-/cancelled-o-hare-noise-compatibility-commission-meeting', - 'start': datetime.datetime(2020, 5, 1, 8, 0), - 'time_notes': '', - 'title': "O'Hare Noise Compatibility Commission Meeting"} -2020-08-19 18:04:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/27/309/-/executive-committee-meeting-via-video-teleconference> + 'classification': 'Committee', + 'description': 'Join Zoom Meeting', + 'end': datetime.datetime(2020, 4, 21, 10, 30), + 'links': [{'href': 'https://zoom.us/j/95602787994?pwd=NUFJVkc0QUs0clhRNCs5OWdBS3l3UT09', + 'title': 'Zoom Link'}], + 'location': {'address': '(via video or audio conference)', + 'name': '(via video or audio conference)'}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/21/300/-/fly-quiet-committee-via-video-or-audio-conference', + 'start': datetime.datetime(2020, 4, 21, 9, 30), + 'status': 'passed', + 'title': 'Fly Quiet Committee (via video or audio conference)'} +2020-08-28 21:56:55 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/27/309/-/executive-committee-meeting-via-video-teleconference> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 4, 27, 11, 30), 'links': [], @@ -755,26 +819,24 @@ 'name': '(via video/teleconference)'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/27/309/-/executive-committee-meeting-via-video-teleconference', 'start': datetime.datetime(2020, 4, 27, 10, 30), - 'time_notes': '', + 'status': 'passed', 'title': 'Executive Committee Meeting (via video/teleconference)'} -2020-08-19 18:04:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/21/300/-/fly-quiet-committee-via-video-or-audio-conference> +2020-08-28 21:56:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:55 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/01/317/-/cancelled-o-hare-noise-compatibility-commission-meeting> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Commission', 'description': '', - 'end': datetime.datetime(2020, 4, 21, 10, 30), - 'links': [{'href': 'https://zoom.us/j/95602787994?pwd=NUFJVkc0QUs0clhRNCs5OWdBS3l3UT09', - 'title': 'Zoom Link'}], - 'location': {'address': '(via video or audio conference)', - 'name': '(via video or audio conference)'}, - 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/21/300/-/fly-quiet-committee-via-video-or-audio-conference', - 'start': datetime.datetime(2020, 4, 21, 9, 30), - 'time_notes': '', - 'title': 'Fly Quiet Committee (via video or audio conference)'} -2020-08-19 18:04:32 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/20/337/-/governance-committee-via-video-or-audio-conference> + 'end': datetime.datetime(2020, 5, 1, 9, 0), + 'links': [], + 'location': {'address': '', 'name': ''}, + 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/05/01/317/-/cancelled-o-hare-noise-compatibility-commission-meeting', + 'start': datetime.datetime(2020, 5, 1, 8, 0), + 'status': 'passed', + 'title': "O'Hare Noise Compatibility Commission Meeting"} +2020-08-28 21:56:55 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/20/337/-/governance-committee-via-video-or-audio-conference> {'all_day': False, - 'classification': 'Not classified', + 'classification': 'Committee', 'description': '', 'end': datetime.datetime(2020, 4, 20, 14, 0), 'links': [{'href': 'https://zoom.us/j/91626694784?pwd=RG40Rk5qb2EyQnc1Q2FrOW5jVWcwdz09', @@ -783,13 +845,13 @@ 'name': 'via video or audio conference'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/20/337/-/governance-committee-via-video-or-audio-conference', 'start': datetime.datetime(2020, 4, 20, 13, 0), - 'time_notes': '', + 'status': 'passed', 'title': 'Governance Committee (via video or audio conference)'} -2020-08-19 18:04:33 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:33 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/14/323/-/technical-committee-meeting-via-video-or-audio-conference> +2020-08-28 21:56:56 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/) +2020-08-28 21:56:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/14/323/-/technical-committee-meeting-via-video-or-audio-conference> {'all_day': False, - 'classification': 'Not classified', - 'description': '', + 'classification': 'Committee', + 'description': 'Join Zoom Meeting', 'end': datetime.datetime(2020, 4, 14, 10, 0), 'links': [{'href': 'https://zoom.us/j/966036814?pwd=ZTV1ZFRMSVNOYlY1SkVDbDIzWnpaQT09', 'title': 'Zoom Link'}], @@ -797,37 +859,24 @@ 'name': 'via video or audio conference'}, 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/14/323/-/technical-committee-meeting-via-video-or-audio-conference', 'start': datetime.datetime(2020, 4, 14, 9, 0), - 'time_notes': '', + 'status': 'passed', 'title': 'Technical Committee Meeting (via video or audio conference)'} -2020-08-19 18:04:33 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.oharenoise.org/meetings-all/year.listevents/2020/07/22/-) -2020-08-19 18:04:33 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/03/316/-/cancelled-o-hare-noise-compatibility-commission-meeting> -{'all_day': False, - 'classification': 'Not classified', - 'description': '', - 'end': datetime.datetime(2020, 4, 3, 9, 0), - 'links': [], - 'location': {'address': ' 2777 S. Mannheim Road, Des Plaines, IL', - 'name': 'Cafe La Cave '}, - 'source': 'https://www.oharenoise.org/meetings-all/icalrepeat.detail/2020/04/03/316/-/cancelled-o-hare-noise-compatibility-commission-meeting', - 'start': datetime.datetime(2020, 4, 3, 8, 0), - 'time_notes': '', - 'title': "O'Hare Noise Compatibility Commission Meeting"} -2020-08-19 18:04:33 [scrapy.core.engine] INFO: Closing spider (finished) -2020-08-19 18:04:33 [scrapy.statscollectors] INFO: Dumping Scrapy stats: -{'downloader/request_bytes': 20644, +2020-08-28 21:56:56 [scrapy.core.engine] INFO: Closing spider (finished) +2020-08-28 21:56:56 [scrapy.statscollectors] INFO: Dumping Scrapy stats: +{'downloader/request_bytes': 20117, 'downloader/request_count': 48, 'downloader/request_method_count/GET': 48, - 'downloader/response_bytes': 325210, + 'downloader/response_bytes': 342749, 'downloader/response_count': 48, 'downloader/response_status_count/200': 48, - 'elapsed_time_seconds': 20.493964, + 'elapsed_time_seconds': 21.280918, 'finish_reason': 'finished', - 'finish_time': datetime.datetime(2020, 8, 19, 17, 4, 33, 849465), + 'finish_time': datetime.datetime(2020, 8, 28, 20, 56, 56, 874110), 'item_scraped_count': 65, 'log_count/DEBUG': 113, 'log_count/INFO': 10, - 'memusage/max': 185434112, - 'memusage/startup': 185434112, + 'memusage/max': 184639488, + 'memusage/startup': 184639488, 'request_depth_max': 1, 'response_received_count': 48, 'robotstxt/request_count': 1, @@ -837,5 +886,5 @@ 'scheduler/dequeued/memory': 47, 'scheduler/enqueued': 47, 'scheduler/enqueued/memory': 47, - 'start_time': datetime.datetime(2020, 8, 19, 17, 4, 13, 355501)} -2020-08-19 18:04:33 [scrapy.core.engine] INFO: Spider closed (finished) + 'start_time': datetime.datetime(2020, 8, 28, 20, 56, 35, 593192)} +2020-08-28 21:56:56 [scrapy.core.engine] INFO: Spider closed (finished) diff --git a/tests/files/chi_ohare_noise/chi_ohare_noise_minutes_agenda.html b/tests/files/chi_ohare_noise/chi_ohare_noise_minutes_agenda.html index ae38e5bc9..966d819af 100644 --- a/tests/files/chi_ohare_noise/chi_ohare_noise_minutes_agenda.html +++ b/tests/files/chi_ohare_noise/chi_ohare_noise_minutes_agenda.html @@ -9,25 +9,26 @@ - + - - Meetings - O'Hare Noise Compatibility Commission - - + Agendas and Minutes Archive - O'Hare Noise Compatibility Commission + + + + - - - - - + + + + + - - - - - - - - - + + + + + + + + + + + - + + + + - +
+ +
  • +
  • + + +
    + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    + +
    + +
    + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + Meeting + Date +
    • Agenda
    • Minutes
    +
    + + + Executive Committee + + August 31, 2020 + + +
    + +
    + + + Fly Quiet Committee + + August 20, 2020 + + +
    + +
    + + + Technical Committee + + August 18, 2020 + + +
    + +
    + + + Strategic Planning + + August 13, 2020 + + +
    + +
    + + + Fly Quiet Committee + + June 23, 2020 + + +
    + +
    + + + ONCC General Meeting + + June 5, 2020 + + +
    + +
    + + + Executive Committee + + June 1, 2020 + + +
    + +
    + + + Fly Quiet Committee + + May 26, 2020 + + +
    + +
    + + + Technical Committee + + May 19, 2020 + + +
    + +
    + + + Ad Hoc Governance Committee + + May 19, 2020 + + +
    + +
    + + + Residential Sound Insulation Committee + + May 13, 2020 + + +
    + +
    + + + Ad-Hoc Nominating Committee + + May 12, 2020 + + +
    + +
    + + + Executive Committee + + April 27, 2020 + + +
    + +
    + + + Fly Quiet Committee + + April 21, 2020 + + +
    + +
    + + + Ad Hoc Governance Committee + + April 20, 2020 + + +
    + +
    + + + Technical Committee + + April 14, 2020 + + +
    + +
    + + + Executive Committee + + March 30, 2020 + + +
    + +
    + + + Fly Quiet Committee + + February 25, 2020 + + +
    + +
    + + + Ad Hoc Governance Committee + + February 18, 2020 + + +
    + +
    + + + ONCC General Meeting + + February 14, 2020 + + +
    + +
    +
    + + +
    + +
    + + +
    + + +
    + + + + + + @@ -496,4 +769,4 @@

    Website Search

    - \ No newline at end of file + diff --git a/tests/test_chi_ohare_noise.py b/tests/test_chi_ohare_noise.py index 10ce68000..77afde51c 100644 --- a/tests/test_chi_ohare_noise.py +++ b/tests/test_chi_ohare_noise.py @@ -2,7 +2,8 @@ from os.path import dirname, join import pytest -from city_scrapers_core.constants import NOT_CLASSIFIED +from city_scrapers_core.constants import NOT_CLASSIFIED, CANCELLED, PASSED +from city_scrapers_core.constants import TENTATIVE, COMMITTEE, COMMISSION from city_scrapers_core.utils import file_response from freezegun import freeze_time @@ -25,10 +26,6 @@ def test_tests(): assert len(parsed_items) == 45 -""" -Uncomment below -""" - parsed_sub_items = [] for i in range(5): test_response_2 = file_response( @@ -69,27 +66,43 @@ def test_end(): assert parsed_sub_items[4]["end"] == datetime(2020, 12, 8, 10, 30) -# def test_time_notes(): -# assert parsed_items[0]["time_notes"] == "EXPECTED TIME NOTES" - - -# def test_id(): -# assert parsed_items[0]["id"] == "EXPECTED ID" - - -# def test_status(): -# assert parsed_items[0]["status"] == "EXPECTED STATUS" - - -# def test_location(): -# assert parsed_items[0]["location"] == { -# "name": "EXPECTED NAME", -# "address": "EXPECTED ADDRESS" -# } - - -# def test_source(): -# assert parsed_items[0]["source"] == "EXPECTED URL" +def test_status(): + assert parsed_sub_items[0]["status"] == "passed" + assert parsed_sub_items[1]["status"] == "passed" + assert parsed_sub_items[2]["status"] == "passed" + assert parsed_sub_items[3]["status"] == "passed" + assert parsed_sub_items[4]["status"] == "tentative" + + +def test_location(): + assert parsed_sub_items[0]["location"] == { + "name": "(via video/teleconference)", + "address": "(via video/teleconference)" + } + assert parsed_sub_items[1]["location"] == { + "name": "(via video/teleconference)", + "address": "(via video/teleconference)" + } + assert parsed_sub_items[2]["location"] == { + "name": "Aviation Administration Building", + "address": "10510 W. Zemke Rd" + } + assert parsed_sub_items[3]["location"] == { + "name": "Aviation Administration Building", + "address": "10510 W. Zemke Rd" + } + assert parsed_sub_items[4]["location"] == { + "name": "Chicago Dept. of Aviation Building", + "address": "10510 W. Zemke Road, Chicago, IL, Conference Room 1" + } + + +def test_source(): + assert parsed_sub_items[0]["source"] == "https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-" + assert parsed_sub_items[1]["source"] == "https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-" + assert parsed_sub_items[2]["source"] == "https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-" + assert parsed_sub_items[3]["source"] == "https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-" + assert parsed_sub_items[4]["source"] == "https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-" # def test_links(): @@ -99,10 +112,14 @@ def test_end(): # }] -# def test_classification(): -# assert parsed_items[0]["classification"] == NOT_CLASSIFIED +def test_classification(): + assert parsed_sub_items[0]["classification"] == COMMISSION + assert parsed_sub_items[1]["classification"] == COMMITTEE + assert parsed_sub_items[2]["classification"] == COMMITTEE + assert parsed_sub_items[3]["classification"] == COMMITTEE + assert parsed_sub_items[4]["classification"] == COMMITTEE -# @pytest.mark.parametrize("item", parsed_items) -# def test_all_day(item): -# assert item["all_day"] is False +@pytest.mark.parametrize("item", parsed_sub_items) +def test_all_day(item): + assert item["all_day"] is False From 4eb040977f33e6066e10ffd512b43115c7d577dd Mon Sep 17 00:00:00 2001 From: Donal O'Shea Date: Wed, 9 Sep 2020 21:52:52 +0100 Subject: [PATCH 13/13] Finished making tests. Ran and finalized linting and style-checking --- city_scrapers/spiders/chi_ohare_noise.py | 58 ++-- tests/test_chi_ohare_noise.py | 388 +++++++++++++++++++++-- 2 files changed, 388 insertions(+), 58 deletions(-) diff --git a/city_scrapers/spiders/chi_ohare_noise.py b/city_scrapers/spiders/chi_ohare_noise.py index 3a8c26e1b..1ba51fe72 100644 --- a/city_scrapers/spiders/chi_ohare_noise.py +++ b/city_scrapers/spiders/chi_ohare_noise.py @@ -1,8 +1,14 @@ import re from datetime import datetime, timedelta -from city_scrapers_core.constants import NOT_CLASSIFIED, CANCELLED, PASSED -from city_scrapers_core.constants import TENTATIVE, COMMITTEE, COMMISSION +from city_scrapers_core.constants import ( + CANCELLED, + COMMISSION, + COMMITTEE, + NOT_CLASSIFIED, + PASSED, + TENTATIVE, +) from city_scrapers_core.items import Meeting from city_scrapers_core.spiders import CityScrapersSpider from scrapy import Request @@ -32,7 +38,7 @@ def parse(self, response): def _parse_details(self, response): stime = self._parse_start(response) meeting = Meeting( - title=self._parse_title(response).replace('CANCELLED ', '').strip('- '), + title=self._parse_title(response).replace("CANCELLED ", "").strip("- "), description=self._parse_description(response), start=stime, end=stime + timedelta(hours=1), @@ -62,12 +68,12 @@ def _parse_description(self, response): def _parse_classification(self, meeting): """Parse or generate classification from allowed options.""" - if 'committee' in meeting['title'].lower(): - meeting['classification'] = COMMITTEE - elif 'commission' in meeting['title'].lower(): - meeting['classification'] = COMMISSION + if "committee" in meeting["title"].lower(): + meeting["classification"] = COMMITTEE + elif "commission" in meeting["title"].lower(): + meeting["classification"] = COMMISSION else: - meeting['classification'] = NOT_CLASSIFIED + meeting["classification"] = NOT_CLASSIFIED return meeting def _parse_start(self, response): @@ -116,14 +122,14 @@ def _parse_links(self, response): def _parse_source(self, response): """Parse or generate source.""" return response.url - + def _get_status(self, meeting): - if 'cancelled' in meeting['title'].lower(): - meeting['status'] = CANCELLED - elif datetime.now() > meeting['end']: - meeting['status'] = PASSED + if "cancelled" in meeting["title"].lower(): + meeting["status"] = CANCELLED + elif datetime.now() > meeting["end"]: + meeting["status"] = PASSED else: - meeting['status'] = TENTATIVE + meeting["status"] = TENTATIVE return meeting @@ -135,9 +141,7 @@ def parse(self, response): Change the `_parse_title`, `_parse_start`, etc methods to fit your scraping needs. """ - for item in response.css("tr.cat-list-row0") + response.css( - "tr.cat-list-row1" - ): + for item in response.css("tr.cat-list-row0, tr.cat-list-row1"): meeting = Meeting( title=self._parse_title(item), start=self._parse_start(item), @@ -180,23 +184,23 @@ def _parse_source(self, response): return response.url def _get_status(self, meeting): - if 'cancelled' in meeting['title'].lower(): - meeting['status'] = CANCELLED - elif datetime.now() > meeting['start']: - meeting['status'] = PASSED + if "cancelled" in meeting["title"].lower(): + meeting["status"] = CANCELLED + elif datetime.now() > meeting["start"]: + meeting["status"] = PASSED else: - meeting['status'] = TENTATIVE + meeting["status"] = TENTATIVE return meeting def _parse_classification(self, meeting): """Parse or generate classification from allowed options.""" - if 'committee' in meeting['title'].lower(): - meeting['classification'] = COMMITTEE - elif 'commission' in meeting['title'].lower(): - meeting['classification'] = COMMISSION + if "committee" in meeting["title"].lower(): + meeting["classification"] = COMMITTEE + elif "commission" in meeting["title"].lower(): + meeting["classification"] = COMMISSION else: - meeting['classification'] = NOT_CLASSIFIED + meeting["classification"] = NOT_CLASSIFIED return meeting def start_requests(self): diff --git a/tests/test_chi_ohare_noise.py b/tests/test_chi_ohare_noise.py index 77afde51c..6c56a1abc 100644 --- a/tests/test_chi_ohare_noise.py +++ b/tests/test_chi_ohare_noise.py @@ -1,9 +1,9 @@ +import datetime as dt from datetime import datetime from os.path import dirname, join import pytest -from city_scrapers_core.constants import NOT_CLASSIFIED, CANCELLED, PASSED -from city_scrapers_core.constants import TENTATIVE, COMMITTEE, COMMISSION +from city_scrapers_core.constants import COMMISSION, COMMITTEE, PASSED, TENTATIVE from city_scrapers_core.utils import file_response from freezegun import freeze_time @@ -16,27 +16,46 @@ test_response = file_response( join(dirname(__file__), "files/chi_ohare_noise", "chi_ohare_noise.html"), - url="https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-", + url=( + "https://www.oharenoise.org/about-oncc" + + "/oncc-meetings/month.calendar/2019/02/03/-" + ), ) parsed_items = [item for item in spider.ChiOhareNoiseSubSpider1().parse(test_response)] freezer.stop() + def test_tests(): assert len(parsed_items) == 45 + parsed_sub_items = [] -for i in range(5): +for i in range(5): test_response_2 = file_response( - join(dirname(__file__), "files/chi_ohare_noise", "chi_ohare_noise_meetings_sub_{0}.html".format(i+1)), - url="https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-", + join( + dirname(__file__), + "files/chi_ohare_noise", + "chi_ohare_noise_meetings_sub_{0}.html".format(i + 1), + ), + url=( + "https://www.oharenoise.org/about-oncc/" + + "oncc-meetings/month.calendar/2019/02/03/-" + ), + ) + parsed_sub_items.append( + spider.ChiOhareNoiseSubSpider1()._parse_details(test_response_2) ) - parsed_sub_items.append(spider.ChiOhareNoiseSubSpider1()._parse_details(test_response_2)) + def test_title(): - assert parsed_sub_items[0]["title"] == "O'Hare Noise Compatibility Commission Meeting (via video/teleconference)" - assert parsed_sub_items[1]["title"] == "Fly Quiet Committee (via video/teleconference)" + assert parsed_sub_items[0]["title"] == ( + "O'Hare Noise Compatibility Commission" + " Meeting (via video/teleconference)" + ) + assert parsed_sub_items[1]["title"] == ( + "Fly Quiet Committee" + " (via video/teleconference)" + ) assert parsed_sub_items[2]["title"] == "Executive Committee Meeting" assert parsed_sub_items[3]["title"] == "Executive Committee Meeting" assert parsed_sub_items[4]["title"] == "Fly Quiet Committee" @@ -67,49 +86,44 @@ def test_end(): def test_status(): - assert parsed_sub_items[0]["status"] == "passed" - assert parsed_sub_items[1]["status"] == "passed" - assert parsed_sub_items[2]["status"] == "passed" - assert parsed_sub_items[3]["status"] == "passed" - assert parsed_sub_items[4]["status"] == "tentative" + assert parsed_sub_items[0]["status"] == PASSED + assert parsed_sub_items[1]["status"] == PASSED + assert parsed_sub_items[2]["status"] == PASSED + assert parsed_sub_items[3]["status"] == PASSED + assert parsed_sub_items[4]["status"] == TENTATIVE def test_location(): assert parsed_sub_items[0]["location"] == { "name": "(via video/teleconference)", - "address": "(via video/teleconference)" + "address": "(via video/teleconference)", } assert parsed_sub_items[1]["location"] == { "name": "(via video/teleconference)", - "address": "(via video/teleconference)" + "address": "(via video/teleconference)", } assert parsed_sub_items[2]["location"] == { "name": "Aviation Administration Building", - "address": "10510 W. Zemke Rd" + "address": "10510 W. Zemke Rd", } assert parsed_sub_items[3]["location"] == { "name": "Aviation Administration Building", - "address": "10510 W. Zemke Rd" + "address": "10510 W. Zemke Rd", } assert parsed_sub_items[4]["location"] == { "name": "Chicago Dept. of Aviation Building", - "address": "10510 W. Zemke Road, Chicago, IL, Conference Room 1" + "address": "10510 W. Zemke Road, Chicago, IL, Conference Room 1", } def test_source(): - assert parsed_sub_items[0]["source"] == "https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-" - assert parsed_sub_items[1]["source"] == "https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-" - assert parsed_sub_items[2]["source"] == "https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-" - assert parsed_sub_items[3]["source"] == "https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-" - assert parsed_sub_items[4]["source"] == "https://www.oharenoise.org/about-oncc/oncc-meetings/month.calendar/2019/02/03/-" - - -# def test_links(): -# assert parsed_items[0]["links"] == [{ -# "href": "EXPECTED HREF", -# "title": "EXPECTED TITLE" -# }] + src = "https://www.oharenoise.org/about-oncc" + src += "/oncc-meetings/month.calendar/2019/02/03/-" + assert parsed_sub_items[0]["source"] == src + assert parsed_sub_items[1]["source"] == src + assert parsed_sub_items[2]["source"] == src + assert parsed_sub_items[3]["source"] == src + assert parsed_sub_items[4]["source"] == src def test_classification(): @@ -123,3 +137,315 @@ def test_classification(): @pytest.mark.parametrize("item", parsed_sub_items) def test_all_day(item): assert item["all_day"] is False + + +# Parsing for second sub spider +test_response_3 = file_response( + join( + dirname(__file__), + "files/chi_ohare_noise", + "chi_ohare_noise_minutes_agenda.html", + ), + url="https://www.oharenoise.org/about-oncc/agendas-and-minutes", +) + +parsed_items_3 = [ + item for item in spider.ChiOhareNoiseSubSpider2().parse(test_response_3) +] + + +def test_title_3(): + assert parsed_items_3[0]["title"] == "Executive Committee" + assert parsed_items_3[1]["title"] == "Fly Quiet Committee" + assert parsed_items_3[2]["title"] == "Technical Committee" + assert parsed_items_3[3]["title"] == "Strategic Planning" + assert parsed_items_3[4]["title"] == "Fly Quiet Committee" + assert parsed_items_3[5]["title"] == "ONCC General Meeting" + assert parsed_items_3[6]["title"] == "Executive Committee" + assert parsed_items_3[7]["title"] == "Fly Quiet Committee" + assert parsed_items_3[8]["title"] == "Technical Committee" + assert parsed_items_3[9]["title"] == "Ad Hoc Governance Committee" + assert parsed_items_3[10]["title"] == "Residential Sound Insulation Committee" + assert parsed_items_3[11]["title"] == "Ad-Hoc Nominating Committee" + assert parsed_items_3[12]["title"] == "Executive Committee" + assert parsed_items_3[13]["title"] == "Fly Quiet Committee" + assert parsed_items_3[14]["title"] == "Ad Hoc Governance Committee" + assert parsed_items_3[15]["title"] == "Technical Committee" + assert parsed_items_3[16]["title"] == "Executive Committee" + assert parsed_items_3[17]["title"] == "Fly Quiet Committee" + assert parsed_items_3[18]["title"] == "Ad Hoc Governance Committee" + assert parsed_items_3[19]["title"] == "ONCC General Meeting" + + +def test_start_3(): + assert parsed_items_3[0]["start"] == dt.datetime(2020, 8, 31, 0, 0) + assert parsed_items_3[1]["start"] == dt.datetime(2020, 8, 20, 0, 0) + assert parsed_items_3[2]["start"] == dt.datetime(2020, 8, 18, 0, 0) + assert parsed_items_3[3]["start"] == dt.datetime(2020, 8, 13, 0, 0) + assert parsed_items_3[4]["start"] == dt.datetime(2020, 6, 23, 0, 0) + assert parsed_items_3[5]["start"] == dt.datetime(2020, 6, 5, 0, 0) + assert parsed_items_3[6]["start"] == dt.datetime(2020, 6, 1, 0, 0) + assert parsed_items_3[7]["start"] == dt.datetime(2020, 5, 26, 0, 0) + assert parsed_items_3[8]["start"] == dt.datetime(2020, 5, 19, 0, 0) + assert parsed_items_3[9]["start"] == dt.datetime(2020, 5, 19, 0, 0) + assert parsed_items_3[10]["start"] == dt.datetime(2020, 5, 13, 0, 0) + assert parsed_items_3[11]["start"] == dt.datetime(2020, 5, 12, 0, 0) + assert parsed_items_3[12]["start"] == dt.datetime(2020, 4, 27, 0, 0) + assert parsed_items_3[13]["start"] == dt.datetime(2020, 4, 21, 0, 0) + assert parsed_items_3[14]["start"] == dt.datetime(2020, 4, 20, 0, 0) + assert parsed_items_3[15]["start"] == dt.datetime(2020, 4, 14, 0, 0) + assert parsed_items_3[16]["start"] == dt.datetime(2020, 3, 30, 0, 0) + assert parsed_items_3[17]["start"] == dt.datetime(2020, 2, 25, 0, 0) + assert parsed_items_3[18]["start"] == dt.datetime(2020, 2, 18, 0, 0) + assert parsed_items_3[19]["start"] == dt.datetime(2020, 2, 14, 0, 0) + + +def test_status_3(): + assert parsed_items_3[0]["status"] == PASSED + assert parsed_items_3[1]["status"] == PASSED + assert parsed_items_3[2]["status"] == PASSED + assert parsed_items_3[3]["status"] == PASSED + assert parsed_items_3[4]["status"] == PASSED + assert parsed_items_3[5]["status"] == PASSED + assert parsed_items_3[6]["status"] == PASSED + assert parsed_items_3[7]["status"] == PASSED + assert parsed_items_3[8]["status"] == PASSED + assert parsed_items_3[9]["status"] == PASSED + assert parsed_items_3[10]["status"] == PASSED + assert parsed_items_3[11]["status"] == PASSED + assert parsed_items_3[12]["status"] == PASSED + assert parsed_items_3[13]["status"] == PASSED + assert parsed_items_3[14]["status"] == PASSED + assert parsed_items_3[15]["status"] == PASSED + assert parsed_items_3[16]["status"] == PASSED + assert parsed_items_3[17]["status"] == PASSED + assert parsed_items_3[18]["status"] == PASSED + assert parsed_items_3[19]["status"] == PASSED + + +def test_links_3(): + assert parsed_items_3[0]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=651", + "title": "Agenda", + } + ] + assert len(parsed_items_3[0]["links"]) == 1 + assert parsed_items_3[1]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=645", + "title": "Agenda", + } + ] + assert len(parsed_items_3[1]["links"]) == 1 + assert parsed_items_3[2]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=644", + "title": "Agenda", + } + ] + assert len(parsed_items_3[2]["links"]) == 1 + assert parsed_items_3[3]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=643", + "title": "Agenda", + } + ] + assert len(parsed_items_3[3]["links"]) == 1 + assert parsed_items_3[4]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=632", + "title": "Agenda", + }, + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=650", + "title": "Minutes", + }, + ] + assert len(parsed_items_3[4]["links"]) == 2 + assert parsed_items_3[5]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=631", + "title": "Agenda", + } + ] + assert len(parsed_items_3[5]["links"]) == 1 + assert parsed_items_3[6]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=629", + "title": "Agenda", + }, + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=646", + "title": "Minutes", + }, + ] + assert len(parsed_items_3[6]["links"]) == 2 + assert parsed_items_3[7]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=627", + "title": "Agenda", + }, + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=642", + "title": "Minutes", + }, + ] + assert len(parsed_items_3[7]["links"]) == 2 + assert parsed_items_3[8]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=624", + "title": "Agenda", + }, + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=648", + "title": "Minutes", + }, + ] + assert len(parsed_items_3[8]["links"]) == 2 + assert parsed_items_3[9]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=625", + "title": "Agenda", + } + ] + assert len(parsed_items_3[9]["links"]) == 1 + assert parsed_items_3[10]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=623", + "title": "Agenda", + } + ] + assert len(parsed_items_3[10]["links"]) == 1 + assert parsed_items_3[11]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=621", + "title": "Agenda", + }, + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=641", + "title": "Minutes", + }, + ] + assert len(parsed_items_3[11]["links"]) == 2 + assert parsed_items_3[12]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=613", + "title": "Agenda", + }, + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=649", + "title": "Minutes", + }, + ] + assert len(parsed_items_3[12]["links"]) == 2 + assert parsed_items_3[13]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=611", + "title": "Agenda", + }, + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=630", + "title": "Minutes", + }, + ] + assert len(parsed_items_3[13]["links"]) == 2 + assert parsed_items_3[14]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=612", + "title": "Agenda", + }, + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=640", + "title": "Minutes", + }, + ] + assert len(parsed_items_3[14]["links"]) == 2 + assert parsed_items_3[15]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=610", + "title": "Agenda", + }, + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=639", + "title": "Minutes", + }, + ] + assert len(parsed_items_3[15]["links"]) == 2 + assert parsed_items_3[16]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=609", + "title": "Agenda", + }, + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=638", + "title": "Minutes", + }, + ] + assert len(parsed_items_3[16]["links"]) == 2 + assert parsed_items_3[17]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=605", + "title": "Agenda", + }, + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=615", + "title": "Minutes", + }, + ] + assert len(parsed_items_3[17]["links"]) == 2 + assert parsed_items_3[18]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=603", + "title": "Agenda", + }, + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=618", + "title": "Minutes", + }, + ] + assert len(parsed_items_3[18]["links"]) == 2 + assert parsed_items_3[19]["links"] == [ + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=604", + "title": "Agenda", + }, + { + "href": "https://www.oharenoise.org/about-oncc/agendas-and-minutes" + + "?format=raw&task=download&fid=637", + "title": "Minutes", + }, + ] + assert len(parsed_items_3[19]["links"]) == 2