HardwareZone Scraper – SG Forum Threads, Replies & Monitoring
Pricing
from $2.00 / 1,000 thread listings
HardwareZone Scraper – SG Forum Threads, Replies & Monitoring
Scrape HardwareZone, Singapore's biggest forum, without an API or login: board thread listings with keyword filtering, main posts and all replies, with author, reply count, view count and timestamps. Schedule daily runs for SG brand monitoring. Export JSON/CSV/Excel for social listening.
Pricing
from $2.00 / 1,000 thread listings
Rating
0.0
(0)
Developer
Chad
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
HardwareZone Scraper – Singapore's Biggest Forum (No API, No Login)
Scrape HardwareZone (forums.hardwarezone.com.sg) — Singapore's biggest forum: latest threads per board, and full thread content with all replies — via public HTML endpoints, output as structured data.
Output Fields
Board Thread Listing (ListingRow, content is null)
| Field | Type | Description |
|---|---|---|
| post_id | string | Thread ID |
| site | string | Always hardwarezone |
| board | string | null | Board ID (the forumId used in the query) |
| title | string | null | Title |
| author | string | null | Thread starter |
| reply_count | number | null | Reply count (the raw page may show abbreviations like "895" or "29K" — converted to an integer) |
| view_count | number | null | View count (same handling for "104K" / "4M" abbreviations) |
| created_at | string | null | Post time (ISO 8601, with a +0800 offset) |
| last_reply_at | string | null | Last reply time (ISO 8601, with a +0800 offset) |
| post_url | string | null | Thread URL |
| content | string | null | Body text (null in listing mode) |
| source_mode | string | Scrape mode |
| source_query | string | Query used (board ID) |
| scraped_at | string | Scrape timestamp (ISO 8601) |
Thread Content (ThreadRow, same fields as above, plus content populated)
| Field | Type | Description |
|---|---|---|
| content | string | null | Full thread body text (HTML tags stripped, whitespace collapsed) |
The thread row's board is always null (thread mode doesn't take a board ID as input, and board info isn't on the thread page); reply_count / view_count / last_reply_at are always null (these fields only exist on the board listing page).
Replies (ReplyRow, full thread mode only)
| Field | Type | Description |
|---|---|---|
| reply_id | string | Reply ID (the floor post's element ID; falls back to {threadId}-{floor} when missing) |
| post_id | string | Parent thread ID |
| site | string | Always hardwarezone |
| floor | number | null | Floor number (1-based, numbered continuously across pages; null when the floor can't be read because the post sits behind the age-verification wall — see Notes below) |
| author | string | null | Author |
| content | string | null | Reply content (HTML tags stripped, whitespace collapsed; null when hidden behind the age-verification wall) |
| created_at | string | null | Reply time (ISO 8601, with a +0800 offset; null when hidden behind the wall) |
| scraped_at | string | Scrape timestamp (ISO 8601) |
Modes
| Mode | Input | Output | Billing |
|---|---|---|---|
| forum | forumIds (board IDs) | Thread listing | $0.002/row |
| thread | threadIds / threadUrls | Thread content ($0.008/thread) + all replies ($0.003/reply) | by volume |
Input Fields
| Field | Type | Default | Description |
|---|---|---|---|
| mode | enum | forum | Mode: forum / thread (required) |
| forumIds | array | ["16"] | Board IDs, e.g. 16 (Eat-Drink-Man-Woman), 234 (Chill-out/Happenings), 9 (Mobile Communication Technology). Find more boards at forums.hardwarezone.com.sg |
| threadIds | array | — | Thread IDs |
| threadUrls | array | — | Thread URLs; the thread ID is extracted automatically |
| bulkInput | textarea | — | Bulk paste, one item per line, auto-merged into the matching field based on the current mode |
| keywords | array | — | Board thread mode: title keyword filter (leave empty for no filtering) |
| maxItems | integer | 50 | Board thread mode: max items per board; full thread mode: max threads to scrape (replies per thread are not limited by this). Maximum 2000 |
| dateFrom | string | — | Applies to board thread mode, based on thread post time or last reply time (whichever is newer). Format 3d, 12h, 2w (relative) or MM/DD/YY (absolute date). When set, paging also stops early (pinned threads are exempt from this filter and early-stop check), keeping scheduled monitoring cheaper |
| proxyConfiguration | proxy | Apify datacenter proxy | On by default; without a proxy you share egress IPs with other runs and get rate-limited by the forum. Turn it off only for local testing or your own proxy |
Input Examples
Board Thread Listing
{"mode": "forum","forumIds": ["16", "234"],"maxItems": 50}
Full Thread and Replies
{"mode": "thread","threadUrls": ["https://forums.hardwarezone.com.sg/threads/official-blood-donation-thread-give-blood-save-lives.7166857/"]}
Singapore Social Listening
HardwareZone — especially its casual-chat board EDMW — is Singapore's biggest forum, and the source most often bundled into local social-listening monitoring. Want a fuller picture of Asian forum sentiment? Pair it with the author's other Traditional-Chinese sentiment actors: LIHKG (lihkg-scraper, Hong Kong) and PTT (ptt-scraper, Taiwan). All three actors share the same output conventions (snake_case, null for missing values, ISO timestamps), making it easy to merge and analyze together.
Notes
- Only public content is scraped — no account or token required
- Uses public HTML endpoints (XenForo forum engine) — no browser required, so it's fast and low-cost
- Body text has HTML tags automatically stripped, with whitespace collapsed to single spaces
- Board IDs / thread IDs can be plain numbers (e.g.
forumIds: ["16"]) — the actor builds the URL automatically; HardwareZone redirects a plain-number URL to the full URL with the board/thread name, so the result is the same - Some posts sit behind an age-verification wall: HardwareZone requires login and age verification to view certain content in full (not limited to adult boards). When scraped without login, these posts only yield
author(still populated);content/created_at/floorare honestly reported asnullrather than faked. The thread's first post (the main body) has not been observed to be affected by this restriction reply_count/view_countare often shown as abbreviations like "104K" / "4M" on the raw page (not just for very large numbers — mid-sized ones can be abbreviated too), and are uniformly converted to integers- Auto-stops after 5 consecutive pages with no new data — no idle burn. When
dateFromis set, paging stops immediately once every non-pinned thread on a page is older thandateFrom(cheaper still; applies to forum mode only — pinned threads are always kept and are not subject to this filter) - If HardwareZone (XenForo) redesigns its site or adds anti-scraping measures in the future, this is judged by Apify Cloud smoke test results (go/no-go); if blocked, the fallback is to switch to Apify residential proxy — not over-engineered in advance
FAQ
Q: Do I need to log in to view this data?
A: No. This actor only scrapes public thread listings and posts — nothing that requires login. A small number of posts sit behind an age-verification wall (see Notes above); their content simply isn't retrievable without login in the first place, so it's out of scope.
Q: Why is content / created_at / floor null for some replies?
A: These replies are hidden behind HardwareZone's age-verification wall — content and time can't be read without login. We honestly report null instead of fabricating data; author is still available, and reply_id is always populated.
Q: Can I scrape multiple boards at once?
A: Yes. Add multiple IDs to forumIds, or paste them one per line via bulkInput.
Q: What's the difference between threadIds and threadUrls?
A: Same effect — threadUrls automatically extracts the numeric ID. Both support the plain-number URL (/threads/{id}/) and the full URL (/threads/{title-slug}.{id}/).
Q: Why is the board field null in full thread mode?
A: The thread page itself doesn't carry board info (the board ID only appears in the board listing page's URL), and full thread mode's input is just a threadId — there's no way to know which board it belongs to, so we honestly return null.
Disclaimer
This tool is for academic research and lawful business analysis only. Users must comply with HardwareZone's Terms of Service and applicable laws. Do not use this tool to invade others' privacy, spread false information, or engage in any other unlawful activity. The author accepts no responsibility for any misuse.
HardwareZone scraper, Singapore forum, HWZ, EDMW, SG social listening, brand monitoring Singapore, forum sentiment