V2EX Scraper
hipersoft/v2ex-scraper
Scrape V2EX tech-community topics: title, content, author, node, reply count and timestamps. Hot, latest or by node.
Total users
3Monthly users
3Total runs
91Per topic scraped
$0.001Last rebuilt
Oct 26, 2026Overview
Scrape V2EX, the popular Chinese tech and developer community, into clean JSON, CSV or Excel. This V2EX scraper extracts title, content, author, node, reply count and timestamps for the hottest topics, the newest topics, or every topic in the nodes you choose. Fast and reliable.
Perfect for tech-trend monitoring, developer-community research, topic discovery and creator analytics.

What does V2EX Scraper do?
The V2EX Scraper collects discussion topics from V2EX and returns them as structured data. It supports three modes — hottest topics, latest topics, or topics from specific nodes — and extracts the title, full content, author, node and engagement metrics for each topic, so you can build a complete developer-community dataset.
What data can you scrape from V2EX?
| Category | Fields |
|---|---|
| 📝 Topic | title, content, node, node title, topic URL |
| 👤 People | author, last reply by |
| 💬 Engagement | reply count |
| 🕒 Timestamps | created date, last touched date, collected date |
Output
Each topic is returned as one clean record. Example output:
{
"id": 1230880,
"title": "How do you keep learning as a senior engineer?",
"content": "...",
"author": "pc10201",
"node": "programmer",
"nodeTitle": "程序员",
"replies": 180,
"lastReplyBy": "someuser",
"createdAt": "2026-07-27T10:00:00.000Z",
"lastTouchedAt": "2026-07-30T11:52:06.000Z",
"url": "https://www.v2ex.com/t/1230880",
"collectedAt": "2026-07-30T12:00:00.000Z"
}
Output schema
| Field | Type | Description |
|---|---|---|
id |
integer | Unique topic identifier. |
title |
string | Topic title. |
content |
string | Full topic body text. |
author |
string | Username of the topic author. |
node |
string | Node the topic belongs to. |
nodeTitle |
string | Display title of the node. |
replies |
integer | Number of replies on the topic. |
lastReplyBy |
string | Username of the last person to reply. |
createdAt |
string (ISO date) | When the topic was created. |
lastTouchedAt |
string (ISO date) | When the topic was last active. |
url |
string (URL) | Direct link to the topic. |
collectedAt |
string (ISO date) | Timestamp when the record was collected. |
Use cases
- Tech-trend monitoring — track what developers are discussing across nodes.
- Developer-community research — analyze topics, engagement and active authors.
- Topic discovery — surface hot and rising threads by reply count.
- Creator analytics — study which authors and nodes drive discussion.
- Sentiment and content analysis — feed topic text into your own models.
- Job and hiring signals — watch job-related nodes for opportunities.
How to scrape V2EX data
- Add the V2EX Scraper to your Apify account.
- Pick a mode — hot, latest, or node.
- For node mode, add the node names you want (e.g.
programmer,qna). - Set the maximum number of topics and click Run.
- Export the results as JSON, CSV, Excel or XML, or pull them via the Apify API.
Input
{
"mode": "node",
"nodes": ["programmer", "qna"],
"maxItems": 100
}
| Field | Type | Description |
|---|---|---|
mode |
string | hot (hottest), latest (newest), or node (topics from chosen nodes). |
nodes |
array | Node names for node mode, e.g. programmer, qna, jobs, python. A node's name is in its URL: v2ex.com/go/<name>. |
maxItems |
integer | Maximum number of topics to scrape. |
Need more developer and tech data?
FAQ
How many topics can I scrape?
As many as you like — set maxItems to cap the run, or leave it high to pull everything available.
Do I need any setup or a login? No setup and no login. Just add the actor, choose a mode, and run.
How do I scrape a specific node?
Use node mode and add the node name(s). Find a node's name in its URL: v2ex.com/go/<name>.
What export formats are supported? JSON, CSV, Excel and XML, plus programmatic access through the Apify API.
How does billing work? You pay only per item you get, so costs scale with the number of topics you scrape.
Is the data only public data? Yes — the scraper returns only publicly available topic information.
Can I integrate this with other tools? The V2EX Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Notes
Original clean-room implementation. Returns only public data; you are responsible for compliance with V2EX's terms. Not affiliated with V2EX.
Input
| Field | Type | Description |
|---|---|---|
modeMode | string · hot, latest, node | hot = hottest topics, latest = newest topics, node = topics from specific nodes. Default: "hot" |
nodesNodes | array | Node names to scrape when mode = node (e.g. programmer, qna, jobs, apple, python). Find a node name in its URL: v2ex.com/go/. |
maxItemsMax topics | integer | Maximum topics to scrape. Default: 100 |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~v2ex-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"nodes": [
"programmer",
"qna"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/v2ex-scraper").call(run_input={
"nodes": [
"programmer",
"qna"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/v2ex-scraper').call({
"nodes": [
"programmer",
"qna"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Topic scraped One V2EX topic scraped. | $0.001 | $0.001 |
| API request One V2EX API request. | $0.0008 | $0.0008 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Website Contact Scraper
Extract business emails, phone numbers and social media profiles from any list of websites. De-obfuscates emails, reads Organization schema, and optionally crawls contact/about pages. Bulk-ready.
1,576 runs · 69 users · $0.0024 / website scrapedThreads Downloader
Download Threads photos, videos and carousel posts by URL. Paste threads.net or threads.com links and get ready-to-use download links plus direct media URLs, a thumbnail, media type and count — one row per URL as JSON, CSV or Excel. Cheap, bulk, built for creators and n8n.
799 runs · 4 users · $0.003 / post downloadedTikTok Video Downloader
Download TikTok videos without watermark in bulk. Paste video or photo-slideshow URLs and get a clean HD MP4 download link plus full metadata: caption, author, play/like/comment/share counts, sound and cover — one row per post as JSON, CSV or Excel. For creators, research and n8n.
678 runs · 9 users · $0.0035 / video downloadedReddit Scraper
Scrape Reddit posts and comments by subreddit, keyword, author or thread URL. Get titles, self-text, scores, upvote ratio, comment counts, comment trees and permalinks — one clean row per post or comment. Export as JSON, CSV or Excel.
568 runs · 15 users · $0.0034 / post scrapedSpotify Scraper
Search Spotify and scrape public metadata for tracks, artists, albums and playlists: names, artists, popularity, followers, genres, release dates, duration, ISRC, preview URL and more. No Spotify login or API key required. For music research, catalogs and analytics.
478 runs · 9 users · $0.0034 / item scrapedReddit Video, Image & GIF Downloader
Download Reddit videos, images and GIFs by post URL. Paste reddit.com or redd.it links and get ready-to-use download links — videos as a single playable MP4 with audio, images and galleries as direct links — one row per URL as JSON, CSV or Excel. Cheap, bulk, built for creators and n8n.
453 runs · 16 users · $0.003 / item scrapedSend the site and the fields. We build it and you get it first.