Call the Stack Exchange Questions Scraper Actor from Node.js with the official apify-client package.
npm install apify-clientimport { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('logiover/stack-exchange-questions-scraper').call({
site: 'stackoverflow',
tagged: 'python',
sort: 'votes',
maxQuestions: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const q of items) {
console.log(`[${q.score}▲ ${q.viewCount} views] ${q.title} — ${q.link}`);
}const run = await client.actor('logiover/stack-exchange-questions-scraper').call({
site: 'devops',
tagged: 'kubernetes;helm',
sort: 'creation',
maxQuestions: 300,
});const { items } = await client.dataset(run.defaultDatasetId).listItems();
const gaps = items
.filter((q) => !q.hasAcceptedAnswer && q.viewCount > 5000)
.sort((a, b) => b.viewCount - a.viewCount);
console.log(`${gaps.length} unanswered high-view questions`);
gaps.slice(0, 10).forEach((q) => console.log(q.viewCount, 'views —', q.title));const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
(async () => {
const run = await client.actor('logiover/stack-exchange-questions-scraper').call({
site: 'serverfault', sort: 'hot', maxQuestions: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'questions');
})();Keep your token in an environment variable rather than hard-coding it. Full input/output reference is in the main README.