Skip to content

Fix FIF (Fife) scraper#419

Open
symroe wants to merge 2 commits into
masterfrom
fix/FIF-scraper
Open

Fix FIF (Fife) scraper#419
symroe wants to merge 2 commits into
masterfrom
fix/FIF-scraper

Conversation

@symroe

@symroe symroe commented Jul 4, 2026

Copy link
Copy Markdown
Member

What broke

www.fife.gov.uk returns HTTP 403 to wreq's Firefox133 TLS fingerprint but serves the councillors page correctly to browser clients. The WAF drops the connection when it detects the non-browser TLS client-hello, causing the scraper to fail. The scraper has been failing for 10 consecutive days (2026-06-23 through 2026-07-02). This is the same WAF fingerprint block pattern seen on ELN (PR #410), HAL (#400), TON (#402), MON (#401), and others.

What was fixed

  • Added http_lib = "playwright" to the Scraper class — headless Chromium's Chrome TLS fingerprint passes the WAF check, allowing the councillors page and individual councillor detail pages to be fetched correctly.

Scrape results

Metric Count
Councillors found TBC (Lambda run needed — WAF blocks all non-Chromium clients from this environment)
With email address TBC
With photo TBC

The endpoint serves valid HTML to browser clients (confirmed). Counts will be confirmed after the next Lambda run.


Generated by Claude Code

symroe added 2 commits July 4, 2026 08:12
fife.gov.uk returns HTTP 403 to wreq's Firefox133 TLS fingerprint but
serves the councillors page correctly to browser clients. The WAF drops
the connection when it detects the non-browser TLS client-hello. This is
the same WAF fingerprint block pattern seen on ELN (PR #410), HAL (#400),
TON (#402), and others.

Adding http_lib = "playwright" switches from wreq to headless Chromium,
whose Chrome TLS fingerprint passes the WAF. The scraper has been failing
for 10 consecutive days (2026-06-23 through 2026-07-02).
Remove stray '[' from .councillor-social mailto selector that would have
caused an invalid CSS selector error at runtime.
@symroe

symroe commented Jul 4, 2026

Copy link
Copy Markdown
Member Author

Re-scrape after 6938062

Added http_lib = "playwright" to bypass the WAF 403 block on www.fife.gov.uk. The site actively rejects wreq's Firefox133 TLS fingerprint; headless Chromium's Chrome fingerprint passes the WAF and can reach both the councillor list and individual detail pages.

A local scrape cannot be confirmed from this environment — the WAF blocks all non-Chromium HTTP clients (curl, requests, wreq) used in pre-Lambda testing. Counts will be populated on the next scheduled Lambda run.

Metric Count
Councillors found TBC (Lambda run needed)
With email address TBC
With photo TBC

Generated by Claude Code

symroe pushed a commit that referenced this pull request Jul 10, 2026
…int block

www.cne-siar.gov.uk returns HTTP 403 to wreq's Firefox133 TLS fingerprint.
The existing verify_requests=False addresses a certificate trust issue but
does not bypass the WAF's TLS fingerprint check. Adding http_lib="playwright"
switches to headless Chromium's Chrome TLS fingerprint, which passes the WAF
and allows the councillors page and individual detail pages to load correctly.
Same fix pattern as ELN (#410), FIF (#419), and other recently fixed councils.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant