BlackHatWorld scraper & Search — Threads & Full Posts, No Proxy avatar

BlackHatWorld scraper & Search — Threads & Full Posts, No Proxy

Pricing

$5.00 / 1,000 results

Go to Apify Store
BlackHatWorld scraper & Search — Threads & Full Posts, No Proxy

BlackHatWorld scraper & Search — Threads & Full Posts, No Proxy

Scrape any BlackHatWorld thread straight from its URL — full posts with their images, formatting, links, reactions (and who reacted) and author details — or search the forum and scrape every matching thread. No login or proxy required.

Pricing

$5.00 / 1,000 results

Rating

0.0

(0)

Developer

Red Crawler

Red Crawler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

BlackHatWorld Scraper & Search — Threads & Full Posts

Modes No login No proxy Output formats Pricing

Pull clean, structured data out of BlackHatWorld — either by searching the forum and grabbing every matching result, or by scraping the exact thread URLs you paste in. Threads come back with their full posts: the complete content (with formatting and embedded images preserved), every link, who wrote each post, and the reactions on it — including the full list of who reacted. No account, no login, and no proxy required.


Two ways to use it

Pick one at the top of the input with the Mode selector. Only the fields for the mode you pick are used — everything else is ignored.

ModeWhat it doesYou provide
Search BlackHatWorldRuns a keyword search and returns every matching result. For threads, each match is fully scraped.A Search query + optional filters
Scrape thread URLsSkips search entirely and scrapes the exact threads you paste.One or more Thread URLs

In Search mode, choose a Search type:

Search typeWhat you get
Search everythingMatches across every content type at once — each row tagged with its type.
Search threadsDiscussion threads, each scraped for its full post content.
Search mediaImage-gallery items: title, category, uploader, image URL, tags.
Search media commentsComments left on gallery items.
Search profile postsStatus posts left on member profiles.
Search tagsThreads carrying a given tag (enter the tag as the query).

Quick start

To search:

  1. Set Mode to Search BlackHatWorld.
  2. Type a Search query (e.g. instagram automation).
  3. Pick a Search type (default: Search threads).
  4. (Optional) Narrow with sort order, date range, forum, minimum replies, etc.
  5. Click Save & start.

To scrape specific threads:

  1. Set Mode to Scrape thread URLs.
  2. Paste one or more thread URLs into Thread URLs, e.g. https://www.blackhatworld.com/seo/the-three-commandments-of-bhw.950872/
  3. Choose What to scrape from each threadFirst post only or All posts (post + replies).
  4. Click Save & start.

Input fields

FieldApplies toDescription
ModebothSearch BlackHatWorld or Scrape thread URLs.
Search querySearchKeywords to search for.
Thread URLsScrapeOne or more BlackHatWorld thread URLs to scrape directly.
Search typeSearchEverything / threads / media / media comments / profile posts / tags.
Sort results bySearchRelevance, most recent, or most replies.
Search titles onlySearch (threads)Match the query against thread titles only.
Only threads newer / older thanSearchLimit by last-activity date.
Started by (usernames)SearchOnly threads started by these members.
Posted on profile of (members)Search (profile posts)Only posts left on these members' profiles.
Limit to forum(s)Search (threads)Restrict to one or more forums.
Search sub-forums as wellSearch (threads)Also search forums nested inside the chosen ones.
Search in categoriesSearch (media)Restrict media search to gallery categories.
Search child categories as wellSearch (media)Also search categories nested inside the chosen ones.
Comments onSearch (media comments)Limit to comments on media items and/or albums.
What to scrape from each threadboth (threads)First post only or All posts (post + replies).
Include who reactedboth (threads)Also fetch the full reactor list per post (extra time per post).
Max posts per threadboth (threads)Cap posts pulled per thread. 0 = no cap.
Minimum repliesSearch (threads)Only threads with at least this many replies.
Max resultsSearchStop after this many results.

Examples

Scrape a thread by URL

Input

{
"mode": "scrape",
"threadUrls": ["https://www.blackhatworld.com/seo/the-three-commandments-of-bhw.950872/"],
"threadScope": "all_posts",
"includeReactors": true
}

Output (one dataset record — one post shown, trimmed)

{
"title": "The Three Commandments of BHW",
"url": "https://www.blackhatworld.com/seo/the-three-commandments-of-bhw.950872/",
"forum": "Brand New to BHW",
"author": "BlackHat World",
"date": "2017-06-27T16:33:12+0100",
"replyCount": 235,
"viewCount": 81114,
"locked": false,
"threadId": "950872",
"tags": [],
"contentFetched": true,
"posts": [
{
"postNumber": "#1",
"postId": "10170993",
"permalink": "https://www.blackhatworld.com/seo/the-three-commandments-of-bhw.950872/post-10170993",
"date": "2017-06-27T16:33:12+0100",
"author": {
"username": "BlackHat World",
"profileUrl": "https://www.blackhatworld.com/members/blackhat-world.8/",
"userId": "8",
"userTitle": "Administrator",
"banners": ["Staff member", "Moderator"],
"joined": "Nov 8, 2005",
"messages": "157",
"reactionScore": "514",
"avatarUrl": "https://www.blackhatworld.com/data/avatars/m/0/8.jpg"
},
"bodyText": "Hi there! Welcome to BlackHatWorld. It's nice to see another new member looking to join the community…",
"bodyHtml": "<span style=\"font-size: 18px\">Hi there! Welcome to BlackHatWorld…</span> … <span style=\"color: rgb(184, 49, 47)\">1) Don't sell</span> …",
"images": ["https://cdn.blackhatworld.com/img155/o/g/s/h/u/j/9/OGsHUJ9.jpg"],
"links": [
{ "text": "read the rules", "url": "https://www.blackhatworld.com/help/terms" }
],
"quotes": [],
"reactions": {
"count": 291,
"types": [ { "id": "1", "label": "Like" }, { "id": "3", "label": "Haha" } ],
"reactorsInline": ["oth0s", "S234", "InariSunflower"],
"reactionsUrl": "https://www.blackhatworld.com/posts/10170993/reactions",
"reactors": [
{ "username": "oth0s", "profileUrl": "https://www.blackhatworld.com/members/oth0s.2333832/", "userId": "2333832", "reaction": "Like", "reactedAt": "2026-06-06T18:12:49+0100" }
]
}
}
]
}

bodyHtml keeps the original formatting, so colored text (e.g. a red rule heading) and in-text links (e.g. read the rules) survive intact. bodyText is the same content as clean plain text. Set Include who reacted to fill the reactors list; otherwise you still get the reaction count, the reaction types, and the first few reactorsInline names.

Search threads

Input

{
"mode": "search",
"query": "apify",
"searchType": "threads",
"order": "relevance",
"maxResults": 25,
"searchThreadScope": "all_posts"
}

Output (one dataset record — same thread shape as above, with its posts array)

{
"query": "apify",
"title": "Custom Apify Agent for Instagram: 200 Profiles/3x Daily",
"url": "https://www.blackhatworld.com/seo/custom-apify-agent-for-instagram….1796383/",
"forum": "AI - Artificial Intelligence in Digital Marketing",
"author": "vittorianicolosi1994",
"date": "2026-02-25T09:23:15+0000",
"replyCount": 6,
"threadId": "1796383",
"snippet": "Im looking for custom agent using the Apify framework…",
"contentFetched": true,
"posts": [ "… full post objects, same shape as the Scrape example …" ]
}

Search media

Input

{ "mode": "search", "query": "logo", "searchType": "media", "maxResults": 25 }

Output (one dataset record)

{
"query": "logo",
"type": "media",
"title": "IMG_3679.jpeg",
"url": "https://www.blackhatworld.com/media/img_3679-jpeg.31355/",
"mediaId": "31355",
"category": "Marketplace",
"author": "JessicaSergey",
"date": "2026-02-09T13:54:30+0000",
"commentCount": 0,
"tags": ["logo", "logo & brand identity", "rebranding", "mockup"],
"thumbnail": "https://www.blackhatworld.com/data/xfmg/thumbnail/31/31355-….jpg",
"snippet": "Logo, Brand Work and Graphic Designing"
}

Search everything, media comments, profile posts, and tags each return their own row shape with a type (or contentType) field telling you what kind of result it is.


Output

Every result is one dataset row. You can view, filter, and export it as JSON, CSV, Excel, HTML table, RSS, or via API.

Thread record (search-threads and scrape modes): title · url · forum · author · avatar · date · replyCount · viewCount · locked · postCount · threadId · tags · snippet · contentFetched · posts[]

Each post in posts[]: postNumber · postId · permalink · date · lastEdited · author{username, profileUrl, userId, userTitle, banners, joined, messages, reactionScore, avatarUrl} · bodyText · bodyHtml · images[] · links[] · quotes[] · reactions{count, types, reactorsInline, reactionsUrl, reactors[]}

Media / comment / profile-post / tag records carry their own scalar columns (title, url, author, date, category/forum, tags, snippet…) plus a type field.


Status & error reference

StatusWhat it meansWhat to do
SucceededRun finished. Some or zero results pushed.Open the dataset to view results.
FailedBad input or an upstream fault.Check the run log. You are not charged for failed runs.
Timed outRun exceeded its timeout.Re-run; narrow inputs or lower Max results.
AbortedYou stopped the run manually.No charge for unpushed results.

If a run finishes with a single { "success": false, "error": "…" } row, the message tells you what to fix (most often: Search mode with no query, or Scrape mode with no URLs).


Tips & limits

  • One mode at a time. In Search mode the Thread URLs are ignored; in Scrape mode the query and search filters are ignored.
  • Cost scales with results. In Search mode each thread is fully scraped, so Max results controls run time and cost. Use First post only and Max posts per thread to keep big threads cheap.
  • Who-reacted is opt-in. Leave Include who reacted off unless you need the full reactor list — it adds time per post. The reaction count and types are always included.
  • Media comments / profile posts are sparse on BlackHatWorld — many keywords return zero of those types. Threads and media are the richest.

Why this scraper is fast

  • Speed — a few seconds per page. No browser to boot, no Playwright / Selenium / Puppeteer overhead. Browser-based scrapers typically take 15–60 seconds per page.
  • Reliability — zero browser flakiness. No headless-Chromium crashes, no JS-render timeouts, no surprise mid-run failures from a browser quirk.
  • Footprint — under 100 MB RAM per run. Lightweight and cheap to run; most browser-based scrapers need 1–4 GB.

Pricing

$5 per 1,000 results. You pay only for results actually returned to your dataset — pay-per-result, billed by Apify. Failed and aborted runs are not charged for unpushed results.


Support

Questions, a data shape you need, or a bug to report? Open an issue on the actor's Issues tab and we'll get back to you.