Skip to content

Neighborhood Council Website technologies #44

Open

Description

@ryanmswan

Overview

Project: Open Community Survey

Volunteer Opportunity: Create scraper to get information from builtwith.com on technologies used by neighborhood council websites. Organize the data (create categories for the tech), Automate scrape job to run periodically. Additionally, we want to display this information with a dashboard (see Google Data Studio Dashboard linked below under "Project Output" for an example).

Contact: Ryan Swan (data science), Kaylani (open community survey) Bonnie

Action Items

  • Create a wiki page
  • Build a scraper that can we reuse to get the data on the NC site technologies
  • Add the scripts and other code to the data science repo or if another repo is required, let the leads know.
  • Create a Spreadsheet from the results of initial scrape
  • Create a set of categories in the spreadsheet
  • Rework the script to grab category as well as technology (its available in the API)
  • Add category to each technology, so that the data can be grouped and analyzed will happen automatically prior item is done
  • Assess code for current scraper to determine if it still functions properly
  • Perform additional analysis on Widget technology category: Which sites are using calendars? What are the calendars used for (events of the NC or local events)? Which sites use chatbots? Which sites have search functionality? How many sites use translation widgets?
  • Finish analysis of following technology categories: Content Management system (cms), Mobile, SSL, Payment, Framework, and Copyright
  • Fix directory issues with code. Currently, it's in the 311 directory but needs to be moved to the open community survey directory.
  • Create a reusable matching table of technology to category
  • Create a script to be able to create a new spreadsheet with the matching table so that the technologies are already categorized (except of course the ones that are new).
  • create instructions for updating matching table and running scripts.
  • make sure wiki is updated.
  • release dependency on - Conduct Analysis of 99 NC Features open-community-survey#28

Resources/Instructions

External Tools

Tutorial

Project input (data)

Project output

Rajinder's code

Current presentation

OCS: Tech usage insights NCs
Analytics Analysis Workbook
Widgets Analysis Workbook

Related issues from OCS


Past Collaborators:
@akibrhast, @ava li, @Sarah Williams, @wendywilhelm10 @rajindermavi @ShikaZzz @JessicaFB @Poorvi Rao

Activity

  1. ryanmswan commented on Jul 2, 2021

    @ryanmswan
    Author
  2. ExperimentsInHonesty commented on Jul 5, 2021

    @ExperimentsInHonesty
    Member

    @RyanSwan @salice @JessicaFB @poorvi4 @akibrhast, @ava li, @sarah Williams, @wendywilhelm10 I forgot to mention that @mattyweb has a report tool that he has setup on our AWS and it might be a good place to dump all this data (from the Comparative analysis of features and then the technologies from builtwith api), then we can define the types of reports we want to display and it would allow people to look at a single NC, as well as aggregate stats, etc. Think of it as a real time data visualizers for end users once we have figured out what is worth looking at. At least that's my understanding of how it works. Would be good to ask him to come to the Data Science Community of Practice at some point to discuss it.

  3. ExperimentsInHonesty commented on Aug 9, 2021

    @ExperimentsInHonesty
  4. ebele-oputa commented on Aug 16, 2021

    @ebele-oputa
  5. chelseyklein commented on Sep 10, 2021

    @chelseyklein
  6. rajindermavi commented on Sep 11, 2021

    @rajindermavi
  7. 112 remaining items

  8. Adaakal commented on Oct 13, 2025

    @Adaakal
    Member

    1. Progress (Oct 13, 2025):

    • Successfully scanned all 97 NC sites; regenerated widgets_report.csv and widgets_summary.csv in out/.
    • Verified BuiltWith Free endpoint works (manual curl) and confirmed why the parser fails on technology with free payloads.

    2. Blockers/Notes:

    • Free API returns group/category counts (e.g., “widgets → Live Chat / Site Search / Translation / Schedule Management”) rather than per-technology rows, so the old CSV builder crashes. No data loss; just need a tolerant writer.

    3. Availability:

    • Thursday, 10/16/2025 at 4pmPST

    4. ETA:

    • TBD

    Next Steps:

    • Add a small helper (builtwith_free_probe.py) that:
      • saves bw_groups_categories.csv
      • derives bw_widgets_flags.csv
      • summarizes to bw_widgets_summary.csv
    • Attach heuristic and Free-API summaries to the PR for review.
  9. Adaakal commented on Oct 21, 2025

    @Adaakal
    Member
    1. Progress:
      Ran the HTML heuristic; updated counts and examples are in the PR comment.
    2. Blockers/Notes:
      Time
    3. Availability:
      Thursday, 10/23/2025 at 4pmPST
    4. ETA:
      TBD
      Next Steps:
      Add a small helper (builtwith_free_probe.py) that:
      saves bw_groups_categories.csv
      derives bw_widgets_flags.csv
      summarizes to bw_widgets_summary.csv
      Attach heuristic and Free-API summaries to the PR for review.
  10. Adaakal commented on Nov 11, 2025

    @Adaakal
    Member

    Progress

    • Implemented cache-first workflow for BuiltWith Free API (≈1.3s throttle): identify stale/missing caches → refetch targeted batch → rebuild CSVs.
    • Rebuilt outputs from cache (no Selenium). Current out/ totals:
      • bw_widgets_summary.csv → has_calendar=1, has_chatbot=2, has_search=0, has_translation=1
      • bw_groups_categories.csv → 330 rows, 9 unique domains parsed

    Blockers

    • Free API payloads are sparse/variable (some domains return no groups), requiring selective refetch.
    • Rate limit (~1 req/sec) slows full coverage; certain domains may remain unpopulated on the free tier.

    Availability

    • Thursday 11/13/2025: 4–5 pm PT

    ETA / Next Steps

    • Targeted refetch of 15–25 additional domains, rebuild, and refreshed counts by Tue Nov 11, 2025.
    • If coverage plateaus on the free tier, recommend switching to an org BuiltWith API key (stored as a repo secret) to improve completeness.
  11. chinaexpert1 commented on Jan 20, 2026

    @chinaexpert1
    Member

    Please provide update @Adaakal

    Instructions
    1. Progress: "What is the current status of your project? What have you completed and what is left to do?"
    2. Blockers: "Difficulties or errors encountered."
    3. Availability: "How much time will you have this week to work on this issue?"
    4. ETA: "When do you expect this issue to be completed?"
    5. Pictures (if necessary): "Add any pictures that will help illustrate what you are working on."

    You can use this template

    1. Progress: 
    2. Blockers: 
    3. Availability:
    4. ETA:
    5. Pictures (if necessary): 
    
  12. chinaexpert1 commented on Jan 27, 2026

    @chinaexpert1
    Member

    Please provide update @Adaakal if you don't respond by next week we will have to give your issue to someone else.

    Instructions
    1. Progress: "What is the current status of your project? What have you completed and what is left to do?"
    2. Blockers: "Difficulties or errors encountered."
    3. Availability: "How much time will you have this week to work on this issue?"
    4. ETA: "When do you expect this issue to be completed?"
    5. Pictures (if necessary): "Add any pictures that will help illustrate what you are working on."

    You can use this template

    1. Progress: 
    2. Blockers: 
    3. Availability:
    4. ETA:
    5. Pictures (if necessary): 
    
  13. Adaakal commented on Jan 27, 2026

    @Adaakal
    Member
    1. Progress:
    • Implemented cache-first workflow for BuiltWith Free API (≈1.3s throttle): identify stale/missing caches → refetch targeted batch → rebuild CSVs.
    • Rebuilt outputs from cache (no Selenium). Current out/ totals:
    • bw_widgets_summary.csv → has_calendar=1, has_chatbot=2, has_search=0, has_translation=1
    • bw_groups_categories.csv → 330 rows, 9 unique domains parsed
    1. Blockers: Unable to continue with the project.
    2. Availability: n/a
    3. ETA: n/a
    4. Pictures (if necessary):
  14. moved this from In progress (actively working) to Prioritized Backlog in CoP: Data Science: Project Boardon Feb 3, 2026
  15. self-assigned this
    on Aug 26, 2026
  16. parcheesime commented on Aug 26, 2026

    @parcheesime
    Member

    I did some initial investigation into the current web scraping on builtwith.

    • BuiltWith's current Terms of Use prohibit automated scraping outside of their authorized APIs. Based on earlier comments, it also looks like the project previously explored the limited free API.
    • I found the official Neighborhood Council directory at neighborhoodempowerment.lacity.gov/councils/. The directory is server-rendered HTML and its /councils/ path is not disallowed by the site's robots.txt.
    • I tested parsing the directory table directly with BeautifulSoup and was able to successfully extract 99 of the current Neighborhood Council names and website URLs without Selenium.

    This looks like a possible path forward: use the official City directory as the source for the current council list, then investigate collecting the needed technology information directly from the council websites rather than BuiltWith.

    I have a small proof-of-concept parser working locally and can continue investigating this approach.
    @chinaexpert1

  17. parcheesime commented on Sep 22, 2026

    @parcheesime
    Member

    @chinaexpert1 I wasn’t able to work on this project this weekend. I had some unexpected new-job onboarding and paperwork come up that took most of my attention. I should be able to get back to the project this week.

  18. parcheesime commented on Sep 28, 2026

    @parcheesime
    Member
    1. Progress:
    • Switched to the official City Neighborhood Council directory as the source for the current council list.
    • Implemented a fetch/parser workflow using requests and BeautifulSoup; no Selenium required.
    • Current directory extraction returns 99 Neighborhood Councils and saves the results to data/councils.csv.
    • Added logging for fetch timestamp, HTTP status, council count, source URL, and content hash to help detect future directory changes.
    • Confirmed City directory links lead to individual City-hosted council profile pages.
    • Tested Arleta, Arroyo Seco, and Arts District Little Tokyo profiles and confirmed they contain links to the councils’ external websites.
    • Began investigating a reliable way to extract the official council website from each City profile before inspecting those sites for technology information.
    • Observed a 503 Service Unavailable during repeated requests, so collection will need request pacing/retries and should avoid unnecessary repeat requests.
    1. Blockers: None currently.
    2. Availability: n/a
    3. ETA: none for now
      @chinaexpert1
  19. parcheesime commented on Oct 15, 2026

    @parcheesime
    Member

    Progress:

    Overview

    I've been revisiting the Neighborhood Council website technology assessment to determine whether the original objectives are still relevant and what direction the project should take.

    The original goal was to identify technologies and useful website features across LA's 99 Neighborhood Councils, helping councils compare tools, share resources, and potentially adopt features that better serve their communities.

    Initial Discovery

    • See previous progress from the last 3 comments above.
    • Located the new official City of LA Neighborhood Council directory and confirmed it currently lists 99 councils.
    • Developed and tested an initial Python workflow using Requests and BeautifulSoup to collect council profile information and discover new external website links.
    • Added logging to track HTTP responses, timestamps, and changes to the directory.
    • Reviewed the original comparative analysis spreadsheet, which covers calendars, translation, search, newsletters, CMS platforms, and other website technologies.
    • Identified an opportunity to refresh the historical website inventory and reassess technologies and features currently in use.

    This work is exploratory. No existing project data or production scripts have been replaced.

    Blockers

    If there is still a need for this assessment:

    1. Validate current Neighborhood Council website URLs against the official City directory.
    2. Update the historical comparative spreadsheet while preserving previous findings.
    3. Develop a reusable process for detecting and categorizing website technologies and features.
    4. Identify useful implementations that other Neighborhood Councils might consider adopting.
    5. Document the collection process and findings for future updates.

    Related Issues and Resources

    Request for Direction

    @ExperimentsInHonesty @chinaexpert1

    Before moving further into development, I'd like to confirm whether this assessment is still needed and whether the proposed direction aligns with current Open Community Survey priorities.

    Should we continue with the original objectives, revise the scope?

    Availability

    Monday evenings 7PM

    ETA

    None for now

  20. changed the title [-]Builtwith API Project[/-] [+]Neighborhood Council Website technologies[/+] on Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions