Skip to content

Commit f2f6d98

Browse files
Merge pull request #5701 from openstates/il-bills-support-subset-params
IL: bills: add params for doing subset scrapes
2 parents d5eb066 + 3fb6962 commit f2f6d98

1 file changed

Lines changed: 24 additions & 8 deletions

File tree

scrapers/il/bills.py

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -304,22 +304,37 @@ def get_bill_urls(self, chamber, session, doc_type):
304304
for bill_url in doc.xpath("//table/tbody/tr/td[1]/a/@href"):
305305
yield bill_url
306306

307-
def scrape(self, session=None):
307+
def scrape(self, session=None, chamber=None, bill_type_abbrv=None):
308308
session_id = session
309309
# scrape a single bill for debug
310310
# yield from self.scrape_bill(
311311
# 'upper', '104th', 'SB', 'https://ilga.gov/Legislation/BillStatus?GAID=18&DocNum=2111&DocTypeID=SB&LegId=161644&SessionID=114'
312312
# )
313313

314+
# Handle optional input parameters
315+
if chamber and chamber not in ["lower", "upper"]:
316+
self.error(f"Invalid chamber argument: {chamber}")
317+
elif chamber:
318+
chamber_list = [chamber]
319+
else:
320+
chamber_list = ["lower", "upper"]
321+
322+
if bill_type_abbrv and bill_type_abbrv not in DOC_TYPES.keys():
323+
self.error(f"Invalid bill_type_abbrv: {bill_type_abbrv}")
324+
elif bill_type_abbrv:
325+
bill_type_list = {bill_type_abbrv: DOC_TYPES[bill_type_abbrv]}
326+
else:
327+
bill_type_list = DOC_TYPES
328+
314329
# Sessions that run from 1997 - 2002. Last few sessiosn before bills were PDFs
315330
if session in ["90th", "91st", "92nd"]:
316331
yield from self.scrape_archive_bills(session)
317332
else:
318333
urls = {}
319334
# Identify all bill URLs first for easier debugging
320-
for chamber in ["lower", "upper"]:
335+
for chamber in chamber_list:
321336
for doc_type in [
322-
chamber_slug(chamber) + doc_type for doc_type in DOC_TYPES
337+
chamber_slug(chamber) + doc_type for doc_type in bill_type_list
323338
]:
324339
if chamber not in urls:
325340
urls[chamber] = {doc_type: []}
@@ -337,11 +352,12 @@ def scrape(self, session=None):
337352
chamber, session_id, chamber_doc_type, bill_url
338353
)
339354

340-
# special non-chamber cases
341-
for bill_url in self.get_bill_urls(chamber, session_id, "AM"):
342-
yield from self.scrape_bill(
343-
chamber, session_id, "AM", bill_url, "appointment"
344-
)
355+
# special non-chamber cases, if no bill type abbreviation is specified
356+
if not bill_type_abbrv:
357+
for bill_url in self.get_bill_urls(chamber, session_id, "AM"):
358+
yield from self.scrape_bill(
359+
chamber, session_id, "AM", bill_url, "appointment"
360+
)
345361

346362
def scrape_archive_bills(self, session):
347363
session_abr = session[0:2]

0 commit comments

Comments
 (0)