Feat/extract website developer company#8
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces a new FooterVendorCheck to extract website creator and vendor information from footers, registering it in the check registry and updating the runner to pass row context. It also updates the test datasets and README instructions. The reviewer feedback focuses on performance and design improvements, including: avoiding redundant network requests by de-duplicating URLs and tracking reachability during the initial fetch; reusing a single httpx.Client instance; optimizing BeautifulSoup traversal by avoiding string re-parsing and find_all(True) calls; and refactoring the runner to avoid isinstance checks by updating the base Check.run signature.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
This pr closes #6
Summary
Adds a new
footer_vendorcheck to WebsiteScorecard that scrapes the footer of government websites to identify the vendor or developer responsible for building the site.Changes
New check —
FooterVendorCheck(src/websitescorecard/checks/footer_vendor.py)Scrapes a website's footer and extracts the vendor/developer credit using a multi-stage strategy:
<footer>element, then falls back to any element with a footer-likeid/class, then the bottom 20% of the page body<a>tags near credit trigger phrases (designed by,developed by,solution by,in association with, etc.)hrefinstead of link textResult statuses:
Scrape_URLcolumn support (src/websitescorecard/runner.py)Many government sites require navigating past a language selector to reach the actual content. A
Scrape_URLcolumn can now be added to the input CSV to specify the exact inner page to scrape for footer content. The check triesScrape_URLfirst and falls back to the baseURLif no vendor is found.Known vendor domain mapping
Infrastructure domains are mapped to human-readable names rather than being discarded:
gic.gov.lk→ICTA (GIC)icta.lk→ICTAslts.lk→SLTNew data file (
data/mins_depts_test_check.csv)Input CSV with
Scrape_URLpopulated for ministries and departments where the homepage requires a language selection step.How to Run
Dependencies
Requires two additional packages: