Tunwg Scraper
Spider read tunwg.com in 132 ms without a browser and returned 270 lines of clean markdown, including sections like "Use directly in Go programs", "Persistent URLs" and "Automatic SSL certificates".
To use your own domain name instead of a subdomain on tunwg.com, add a CNAME record in your DNS provider to the encoded domain on tunwg.com e.g. for `test.example.com`, add a CNAME entry for `test` to `xxxxxxxx.l.tunwg.com`### Use directly in Go programsIf you're writing your HTTP server in golang, you can use `tunwg` directly without running a separate binary.import "github.com/ntnj/tunwg"listener, err := tunwg.NewListener("<name>")http.Serve(listener, httpHandler)### Persistent URLsSince the generated subdomain is derived from your wireguard key and the forwarded address, it'll remain constant across process restarts. The wireguard key is stored in `.config/tunwg/` (os.UserConfigDir/tunwg) or `/data/` in docker. It can be customized with `TUNWG_PATH` environment variable.### Automatic SSL certificatesAutomatic SSL certificate are issued through LetsEncrypt and automatically renewed. Fallback to ZeroSSL is supported in case of LetsEncrypt rate limits.### Relay traffic over HTTPSIn case your firewall blocks UDP packets, you can relay the traffic over HTTPS. To use, just add `TUNWG_RELAY=true` to client environment variables.This will effectively be TCP over UDP over TCP, so performance will suffer in case of packet drops. Use this option only if needed.### Expose ports on other hostsYou can forward any ports on local network which the machine running tunwg has access to, without installing tunwg on the forwarded host. e.g.tunwg --forward=http://10.0.0.2:8000,http://10.0.0.10:9000This is especially useful when running `tunwg` with docker compose to expose the ports on other containers without making any modifications to those images. e.g. `docker-compose.yml`command: tunwg --forward=http://whoamiYou can then run `docker compose logs tunwg` to view the generated URL.### HTTP Basic Auth supportTo expose private servers using tunwg, you can use the inbuilt basic auth support. The same call, in code.
The capture above came back as markdown. These examples add a key, so you get browser rendering, proxies, and concurrency on tunwg.com.
import { SpiderBrowser } from "spider-browser";
const spider = new SpiderBrowser({
apiKey: process.env.SPIDER_API_KEY!,
});
await spider.connect();
const page = spider.page!;
await page.goto("https://tunwg.com");
// No selectors, no schema. Spider reads the page and names the fields.
const data = await page.scrape();
console.log(data);
await spider.close(); import { Spider } from "@spider-cloud/spider-client";
const spider = new Spider({ apiKey: process.env.SPIDER_API_KEY! });
const result = await spider.scrapeUrl("https://www.tunwg.com", {
return_format: "markdown",
});
console.log(result); Ready for volume? Get an API key →
Fields you can pull.
Spider names these from the page. The capture above came back as markdown; the same
call with return_format: "json" returns them as keys.
What tunwg.com costs to scrape.
The capture above cost $0.000493 to fetch. Pricing is $1 per GB of pre-transformation bandwidth plus $0.001 per CPU minute, so a page like this one lands at a fraction of a cent. Failed requests are billed at $0.
- Free balance on signup
- No card required to test
- Balance never expires
Run it keyless, no account
More Directories scrapers.
Spotify Main Page Scraper
Extract structured data from Spotify Main Page with automated CSS selectors.
Roblox Landing Page Scraper
Roblox landing page metadata and cookie banner information.
Mozilla Homepage Data Scraper
A scraper for extracting all useful data from the Mozilla homepage, including site metadata, navigation, and content.
Start scraping tunwg.com.
You already have the call. A key raises the rate limit and turns on browser rendering, proxies, and concurrency. Balance never expires, and top-ups go through secure checkout.