TOR Scraper - Dark Web & .onion Site Data Extractor avatar

TOR Scraper - Dark Web & .onion Site Data Extractor

Pricing

from $0.70 / 1,000 results

Go to Apify Store
TOR Scraper - Dark Web & .onion Site Data Extractor

TOR Scraper - Dark Web & .onion Site Data Extractor

Scrape .onion hidden services and websites anonymously over TOR. Provide a list of URLs or search the dark web by keyword, extract page content, and pull any data using CSS selectors. No setup required. TOR runs automatically in the cloud.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

Iñigo Garcia Olaizola

Iñigo Garcia Olaizola

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

🧅 TOR Scraper – Dark Web & .onion Site Data Extractor

Extract data from any .onion hidden service or website anonymously over the TOR network. Scrape URLs directly or search the dark web by keyword (one or more queries) and let the actor discover and scrape matching hidden services for you — no setup, no proxies to configure, no technical knowledge required. Just run.

⚡ What can it do?

  • Scrape any .onion address or regular website routed through TOR
  • Search the dark web with a keyword and automatically scrape matching hidden services
  • Extract custom data from any page using CSS selectors — links, headlines, prices, metadata, anything
  • Capture full content — page title, plain text, and raw HTML for every URL
  • Never lose a result — even failed pages are saved with an error message so you always know what happened

🤔 Why use this actor?

Whether you're a researcher monitoring dark web forums, a journalist tracking hidden services, or a security professional gathering threat intelligence, this actor handles the hard part: accessing TOR, fetching pages, parsing content, and delivering clean structured data — ready to export as JSON, CSV, or Excel.

No TOR installation. No proxy configuration. Just run.

🚀 How it works

  1. Paste your URLs — enter any .onion or regular https:// address
  2. Or search the dark web — enter one or more keywords to discover and scrape matching hidden services automatically
  3. Optionally define extraction rules — use CSS selectors to pull specific data points from every page
  4. Get your data — results are saved to a structured dataset the moment each page is scraped

📥 Input

FieldKeyTypeDescription
URLsurlsstring[]One or more URLs to scrape directly. Supports both .onion hidden service addresses and regular https:// URLs.
Search queriesqueriesstring[]One or more keywords. The actor will search the dark web for each query and scrape the matching hidden services. Can be combined with URLs.
Max ItemsmaxItemsintegerMaximum number of pages to scrape across all queries and URLs. Set to 0 (default) for no limit.
CSS selectorsselectorsobject[]Optional extraction rules. See Extracting specific data with CSS selectors for details and examples.

📦 Output

Every scraped URL produces one dataset row:

FieldDescription
URLThe address that was scraped
Status codeHTTP response code (0 if the server was unreachable)
TitlePage <title>
TextFull plain text — scripts, styles, and markup removed
HTMLRaw HTML source
FieldsArrays of values extracted with your CSS selectors
Search titleTitle of the result as returned by the dark web search engine (only when using keyword search)
Search descriptionSnippet returned by the dark web search engine (only when using keyword search)
ErrorError message if the page failed to load

🎯 Extracting specific data with CSS selectors

Want to pull just the links, headlines, or prices from each page? Define named extraction rules as JSON:

[
{ "name": "heading", "selector": "h1:first-of-type", "single": true },
{ "name": "links", "selector": "a::attr(href)" },
{ "name": "images", "selector": "img::attr(src)" },
{ "name": "description", "selector": "meta[name=description]::attr(content)", "single": true },
{ "name": "navLinks", "selector": "nav a::attr(href)" },
{ "name": "ogImage", "selector": "meta[property='og:image']::attr(content)", "single": true },
{ "name": "feed", "selector": "link[type='application/rss+xml']::attr(href)", "single": true }
]

Each rule supports three properties:

PropertyDescription
nameKey used in the fields output
selectorCSS selector. Append ::attr(name) to extract an HTML attribute instead of text
singleIf true, returns only the first match as a plain string instead of an array

Returning arrays vs single values: by default every rule returns all matching elements as an array. Set "single": true when you expect exactly one result (a page title, a canonical URL, a meta description) and want a plain string in the output.

Picking a specific element: use standard CSS pseudo-classes — :first-of-type, :last-of-type, :nth-of-type(n) — to target a particular occurrence before extracting:

{ "name": "secondHeading", "selector": "h2:nth-of-type(2)", "single": true }

Example output:

{
"heading": "Welcome to the dark web",
"links": ["http://example.onion/about", "http://example.onion/contact"],
"description": "An anonymous service for ...",
"navLinks": ["http://example.onion/home", "http://example.onion/faq"]
}

Results appear in the fields column of your dataset.

💡 Use cases

  • Dark web research — monitor .onion forums, blogs, and marketplaces for content and changes
  • Threat intelligence — track leaked credentials, infrastructure, and activity across hidden services
  • Investigative journalism — access and archive TOR-only sources securely and anonymously
  • Academic research — map and analyze dark web content at scale
  • Anonymous data collection — scrape any website without exposing your IP address

❓ Frequently asked questions

Do I need to install TOR or configure anything? No. TOR runs automatically in the cloud inside the actor — zero setup required.

Can it scrape regular websites as well as .onion sites? Yes. Any https:// URL works alongside .onion addresses in the same run.

What happens if a page fails to load? The page is still saved to the dataset with the error message and status code, so you never lose track of which URLs were attempted.

How do I find .onion sites to scrape? Use the built-in dark web search: enter one or more keywords and the actor discovers matching hidden services and scrapes them automatically — no manual URL hunting needed.

How many pages can I scrape? By default there is no limit. Use Max Items to cap the number of pages scraped in a single run.