Job Description
Context
On 4based.com, the Explore page loads many posts via infinite scroll.
For each post, the Network tab shows API responses that include the user IDs of users who liked the post (for example, an array like like_user_ids).
I need to collect all those user IDs and, more importantly, resolve each user ID to its public username so I can build profile URLs.
I have not found a reliable endpoint or flow that maps user_id to username yet. Figuring out that resolution is part of the task.
What I need
A script I can run locally (Node.js or Python) that:
- Opens the Explore page, auto-scrolls to load posts (infinite scroll).
- Captures the relevant network responses and extracts all liker user IDs for each post.
- Deduplicates IDs so repeated likers are not saved multiple times.
- A robust method to resolve user_id to username using my logged-in session (auth headers or cookies), and then:
- Output user_id, username, profile_url, and any other useful public fields.
Storage
Save results to SQLite (preferred) or CSV/JSON, with deduplication.
Token/session handling
Handle the site’s session or auth (for example x-auth-token, cookies) without me copying it manually every time.
If the session expires, automatically refresh (for example reload the site) and continue.
Deliverables
A working scraper (Node.js plus Playwright or Puppeteer, or Python plus Playwright or Selenium), including:
- Infinite scroll on Explore
- Extraction of all post liker user IDs
- A reliable user_id to username resolution step (using my logged-in context)
- Deduplication and persistence (SQLite preferred)
- A README with setup and run instructions (one command to run)
I can provide HAR files or screenshots from DevTools showing where like_user_ids appear.
I will provide a valid account for testing (I am already a logged-in user).
Please stay within the site’s ToS; use only my own session or auth.
Success criteria
Script loads Explore, scrolls, and collects a large set of liker user IDs.
For the majority of those IDs, the script resolves usernames and produces valid links.
No duplicates in the stored results.
I can re-run the script later and it skips already-seen users.