phpBB Forum Scraper
Pricing
from $1.00 / 1,000 result rows
phpBB Forum Scraper
Generic scraper for phpBB-powered forums. Crawls forums, topics and posts, and outputs structured post data.
phpBB Forum Scraper
Pricing
from $1.00 / 1,000 result rows
Generic scraper for phpBB-powered forums. Crawls forums, topics and posts, and outputs structured post data.
type
Required
Which kind of record this row is: forum (a board on the index), topic (a thread) or post (one message inside a thread). The columns a row carries depend on it, so filter on this before reading anything else.
forum
Required
Base URL of the board this row came from, normalised and without a session id. The same value on every row of a run, and what to group by when one dataset holds several forums.
forumId
Optional
phpBB's own numeric board id, the f parameter. This is the value to pass back as forumId in mode forum.
forumName
Optional
Display name of the board the topic sits in, as shown on the topic page. Null when the listing did not name it.
topicId
Optional
phpBB's own numeric topic id, the t parameter. Join key between a topic row and its post rows.
topicTitle
Optional
Title of the topic this post belongs to, copied onto every post row so a post export stands alone.
title
Optional
Title of the forum (on a forum row) or of the topic (on a topic row).
topicCount
Optional
Number of topics the board index reports for this forum. phpBB's own counter, which can lag moderation.
postCount
Optional
Number of posts the board index reports for this forum. Counts every message in every topic, so it is larger than topicCount.
pinned
Optional
True when the topic is pinned, announced or a global announcement. phpBB styles all of those the same way in the listing, so they are not told apart here.
closed
Optional
True when the topic is locked against new replies.
repliesCount
Optional
Replies as the listing reports them - phpBB counts the opening post separately, so a topic with one reply shows 1 here and yields 2 post rows.
postsCount
Optional
Posts in the topic as the topic page reports them, including the opening post. Null when only the listing was read.
views
Optional
View count phpBB reports for the topic.
postId
Optional
phpBB's own numeric post id, the p parameter. Unique within the board.
postNumber
Optional
Position of the post within its topic, 1 for the opening post. Null where the page did not number it.
username
Optional
Display name of the post's author. Null for a guest or a deleted account.
createdAt
Optional
When the record was created, ISO 8601. Read from phpBB's own <time datetime> attribute where the board publishes one (exact, with the board's UTC offset), otherwise parsed from the displayed date string, for which five phpBB date-format settings are recognised. On a topic row this is the topic's FIRST post's timestamp, so it is populated only in modes that fetch the posts; null on a listing-only row. Measured 2026-10-30: non-null on 20 of 20 posts on forum.palemoon.org (Y-m-d, H:i, no <time> element) and 9 of 9 on forums.gentoo.org (<time datetime>). Null where a board uses a date format none of the five match - createdAtText then carries it verbatim.
lastPostedAt
Optional
Timestamp of the most recent post in the topic, ISO 8601. Read from the <time datetime> attribute in the row's last-post cell where the board publishes one, which carries the board's UTC offset; otherwise parsed from the date the cell renders as text, for which five phpBB date-format settings are recognised. Measured 2026-10-30: 29 of 29 rows on forum.palemoon.org (text dates, no <time> element anywhere on the board) and 50 of 50 on forums.gentoo.org (<time datetime>, offset preserved). Null only where a board uses a date format none of the five match.
lastPostAuthor
Optional
Username of the most recent poster in the topic. Read from the last-post cell's username element whether or not it links to a profile - phpBB renders a bare <span class="username"> when the member is deleted or anonymised, or when the board hides profiles from guests. Measured 2026-10-30: 29 of 29 rows on forum.palemoon.org (6 of them spans) and 50 of 50 on forums.gentoo.org. Does not carry a profile URL; only authorProfileUrl on a post row does.
lastPostUrl
Optional
Direct URL to the most recent post, including its #p anchor.
cookedHtml
Optional
The post body as phpBB rendered it, HTML and all - quotes, code blocks and bbcode already expanded. All three body columns come from the post's div.content, matched on the exact class token and scoped to the postbody, so the author's Contact dropdown can no longer be mistaken for the body - measured 2026-10-30, the real body on 20 of 20 posts on forum.palemoon.org t=33739 and 9 of 9 on forums.gentoo.org t=1178857.
contentMarkdown
Optional
The post body converted to Markdown. Lossy by nature: phpBB constructs with no Markdown equivalent are flattened. All three body columns come from the post's div.content, matched on the exact class token and scoped to the postbody, so the author's Contact dropdown can no longer be mistaken for the body - measured 2026-10-30, the real body on 20 of 20 posts on forum.palemoon.org t=33739 and 9 of 9 on forums.gentoo.org t=1178857.
contentText
Optional
The post body as plain text, with markup removed. The column to use for search, embedding or language work. All three body columns come from the post's div.content, matched on the exact class token and scoped to the postbody, so the author's Contact dropdown can no longer be mistaken for the body - measured 2026-10-30, the real body on 20 of 20 posts on forum.palemoon.org t=33739 and 9 of 9 on forums.gentoo.org t=1178857.
signature
Optional
The author's signature block, as plain text, when the board renders one under the post.
url
Required
Canonical URL of this record, with phpBB's volatile sid session parameter stripped so the same page always yields the same URL.
createdAtText
Optional
The post's date exactly as the board displayed it (Thu Aug 13, 2026 12:31 pm). Localised to the board's language and timezone and not parseable in general, so prefer createdAt; this is here for the boards whose markup carries no machine-readable date, where it is the only date there is. Post rows only.