/city-scrapers

Data collection system for City Bureau Documenters Project

Primary LanguagePythonOtherNOASSERTION

Build Status

Deploy Status

Who are the City Bureau Documenters, and why do they want to scrape websites?

Public meetings are important spaces for democracy where any resident can participate and hold public figures accountable. City Bureau's Documenters program pays community members an hourly wage to inform and engage their communities by attending and documenting public meetings.

How does the Documenters program know when meetings are happening? It isn’t easy! These events are spread across dozens of websites, rarely in useful data formats.

That’s why City Bureau is working together with a team of civic coders to develop and coordinate the City Scrapers, a community open source project to scrape and store these meetings in a central database.

What are the City Scrapers?

The City Scrapers collect information about public meetings. Everyday, the City Scrapers go out and fetch information about new meetings from Chicago city council's website, the local school council's website, the Chicago police department's website, and many more. This happens automatically so that a person doesn't have to do it. The scrapers store all of the meeting information in a database for journalists at City Bureau to report on them.

Community members are also welcome to use this code to set up their own databases.

What can I learn from working on the City Scrapers?

A lot about the City of Chicago! What is City Council talking about this week? What are the local school councils, and what community power do they have? What neighborhoods is the police department doing outreach in? Who governs our water?

From building a scraper, you'll gain experience with:

  • how the web works (HTTP requests and responses, reading HTML)
  • writing functions and tests in Python
  • version control and collaborative coding (git and Github)
  • a basic data file format (json), working with a schema and data validation
  • problem solving, finding patterns, designing robust code

Community Mission

The City Bureau Labs community welcomes contributions from everyone. We prioritize learning and leadership opportunities for under-represented individuals in tech and journalism.

We hope that working with us will fill experience gaps (like using git/github, working with data, or having your ideas taken seriously), so that more under-represented people will become decision-makers in both our community and Chicago’s tech and media scenes at large.

Governance Structure

The City Scrapers project is governed by a committee of rotating volunteer project leaders in collaboration with project contributors. The committee’s role is to 1) Make decisions through consensus on issues that haven't been resolved among volunteers and informal conversations 2) Onboard and advise volunteers who want to get involved in the City Scrapers project 3) Review, approve and enact project agendas OR 3) Manage the project on behalf of the City Bureau Documenters Program use case (prioritize issues, review pull requests, etc) 4) Lead regular meet-ups open to all Labs members and 5) Uphold the City Bureau Labs mission.

Current committee members: Jim Benton, David Eads, Bonnie Fan, Cat Greim, Darryl Holliday, Rebecca Wei

Point of contact: Rebecca Wei (@r-wei)

Ready to code with us?

  1. Fill out this form to join our slack channel and meet the community.
  2. Read about how we collaborate and review our Code of Conduct.
  3. Get started with Installation and Contributing a spider.

We ask all new contributors to start by writing a spider and its documentation or fixing a bug in an existing one in order to gain familiarity with our code and culture. Reach out on slack for support if you need it. We also meet up in person to work together regularly, and post about upcoming meetups in slack.

For those familiar with the project, please see the help-wanted Github issues.

Don't want to code?

Join our slack channel (chatroom) to discuss ideas and meet the community!

A. We have ongoing conversations about what sort of data we should collect and how it should be collected. Help us make these decisions by commenting on issues with a non-coding label.

B. Research sources for public meetings. Answer questions like: Are we scraping events from the right websites? Are there local agencies that we're missing? Should events be updated manually or by a scraper? Triage events sources on these issues.

Scraper Status

Chicago

Status / Last Ran Scraper
Status Aldermanic Ward Nights
Status Animal Care and Control Commission
Status Board of Ethics
Status Building Commission of Chicago
Status City College of Chicago
Status City Council
Status Department of Public Health
Status Infrastructure Trust
Status Local School Council
Status Parks District
Status Police Department
Status Police Board
Status Public Library
Status Public Schools: Board of Education
Status Public Schools: School Actions
Status Public Schools: Community Action Council
Status Transit Authority
Status Metropolitan Water Reclamation District of Greater Chicago

Cook County

Status / Last Ran Scraper
Status Board of Commissioners
Status Department of Public Health
Status Electoral Board
Status Government
Status Health and Hospitals System
Status Land Bank
Status Housing Authority

Illinois

Status / Last Ran Scraper
Status Illinois Labor Relations Board
Status Metra Board of Directors
Status Illinois Department of Public Health
Status Regional Transportation Authority

Detroit

Status / Last Ran Scraper
Status Detroit Board of Education

Wayne County, Michigan

Status / Last Ran Scraper
Status Committee of the Whole

Support this work

This project is organized and maintained by City Bureau.