# Yahoo! Chiebukuro 知恵袋 Q\&A Scraper (`research_master/yahoo-chiebukuro-scraper`) Actor

Search and collect public Yahoo! Chiebukuro questions, best answers, other answers, replies, public author fields, engagement, categories, and auditable coverage records.

- **URL**: https://apify.com/research\_master/yahoo-chiebukuro-scraper.md
- **Developed by:** [Research Master](https://apify.com/research_master) (community)
- **Categories:** Agents, Automation, E-commerce
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.79 / 1,000 question completeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Yahoo! Chiebukuro Q\&A Scraper

Collect public Yahoo!知恵袋 questions, answers, best-answer decisions, replies, author labels, timestamps, engagement signals, categories, and source URLs for Voice of Customer (VOC), market research, and Japanese-language community analysis.

> Use this Actor when the research unit is a complete question context: the question, its selected best answer, and the other public answers.

### How it relates to Quora scrapers

The input and output design follows the useful parts of established Quora Actors: keyword search and direct URLs can be mixed, public Q\&A content is structured for downstream analysis, and question/answer records retain source metadata.

Yahoo!知恵袋 is not a threaded forum like Reddit or 贴吧. It is a question-first service closer to Quora or 百度知道. This Actor therefore preserves the relationship between each question and all of its answers instead of treating answer text as context-free comments.

| Capability | Typical Quora scraper | This Actor |
| --- | --- | --- |
| Keyword search | Yes | Yes, using public Yahoo!知恵袋 search pages |
| Direct question URLs | Yes | Yes |
| Questions and answers | Yes | Yes |
| Best/accepted answer | Accepted answer when exposed | Yahoo!知恵袋 `ベストアンサー` flag and questioner thanks |
| Reply context | Varies | Public replies nested under their answer when exposed |
| Flat CSV-friendly rows | Often | Yes; each answer repeats its question context |
| Coverage audit | Varies | Search-page, question-level, and run-level audit records |
| Profiles, topics, spaces, posts | Common on Quora | Not applicable; this Actor is deliberately limited to Yahoo!知恵袋 Q\&A |

### When to use it

Choose this Actor when:

- You need Japanese consumer questions, purchase barriers, usage problems, recommendations, or peer-proposed solutions.
- You want to search several Japanese keywords and deduplicate overlapping questions.
- You already have Yahoo!知恵袋 question URLs and need the complete public Q\&A context.
- You need best-answer status, answer reactions, public author labels, categories, and reply context.
- You need audit rows that show search coverage, answer coverage, failures, and stopping conditions.

Choose another workflow when:

- You need Reddit-style comment trees or community/subreddit discovery.
- You need private, deleted, authenticated, account-specific, or historical content that is no longer publicly rendered.
- You need Yahoo! JAPAN Search results outside Yahoo!知恵袋.
- You need semantic analysis or AI summaries instead of source records.

### Input

Use `searchQueries`, `startUrls`, or both. Questions found by several searches are collected once and retain every matching query/rank in `search_hits`.

```json
{
  "searchQueries": [
    "防災グッズ おすすめ",
    "電気代 節約 方法",
    "キャンプ 初心者"
  ],
  "startUrls": [
    {
      "url": "https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10329103845"
    }
  ],
  "questionStatus": "all",
  "maxQuestionsPerQuery": 100,
  "maxAnswersPerQuestion": 0,
  "includeReplies": true,
  "outputMode": "both",
  "concurrency": 5,
  "requestDelayMs": 250
}
```

#### Main controls

| Field | Meaning |
| --- | --- |
| `searchQueries` | Japanese keyword searches. |
| `startUrls` | Direct public question detail URLs. |
| `questionStatus` | `all`, `open`, or `resolved`; applies to searches only. |
| `maxQuestionsPerQuery` | Per-query result cap before cross-query deduplication. |
| `maxSearchPages` | Hard safety cap; Yahoo currently renders up to 10 search results per page. |
| `maxAnswersPerQuestion` | `0` means every displayed answer; a positive value creates a bounded sample. |
| `includeReplies` | Keeps replies nested under answers when Yahoo exposes them in the public page data. |
| `outputMode` | `nested`, `flat`, or `both`. Default `both` supports JSON context and CSV/Excel analysis. |
| `concurrency` | Parallel question requests, 1-10. |
| `requestDelayMs` | Delay before each Yahoo request. |
| `maxRequestRetries` | Total attempts for transient failures. |

### Output

The default dataset contains five record types. Always filter `record_type` before analysis.

| `record_type` | One row per | Purpose |
| --- | --- | --- |
| `question` | Unique question | Full question metadata and, in `nested`/`both` mode, all collected answers. |
| `answer` | Answer | CSV-friendly answer row with repeated question title, text, categories, URL, and search provenance. |
| `search_audit` | Query page | Query, page, results found, new unique questions, displayed total, and errors. |
| `question_audit` | Question | Displayed answer target, collected answers/pages/replies, coverage flags, and errors. |
| `run_audit` | Actor run | Input counts, unique questions, output totals, failures, and completion time. |

For VOC analysis, use either:

- `question` rows in nested mode, where each question carries its answers; or
- `answer` rows in flat/both mode, where every answer repeats `question_id`, `question_title`, `question_text`, and source context.

Stable deduplication keys are `question_id` and `answer_id`.

### Pricing

The `question-completed` event is charged once after a question has been parsed successfully, its requested answer target has been reached, and its question and audit rows have been written to the Dataset. Failed questions, incomplete answer coverage, answer rows, replies, and audit rows are not charged separately.

The `run_audit` row reports `questions_chargeable`, `question_completed_events_charged`, and any `questions_not_charged` because the run reached the user's maximum charge limit.

### Coverage checks

Before analysis, verify:

1. `run_audit.failures` is empty.
2. Every `question_audit.answer_coverage_complete` value is `true`, unless a deliberate answer cap was used.
3. `reply_coverage_complete` is `true` when replies are required. A false value means Yahoo displayed more replies than were present in the server-rendered page data.
4. Search-page counts and per-query limits match the intended research scope.

### Limits and responsible use

- Collects public Yahoo!知恵袋 pages only and does not log in or bypass access controls.
- Page structure, field availability, and anti-bot behavior can change; audit failures must be reviewed.
- Public usernames can be masked by Yahoo. The Actor preserves only the public display value and does not infer identity.
- Direct answer anchors are constructed from public question and answer IDs; Yahoo may change anchor behavior.
- The Actor does not classify relevance, commercial content, sentiment, or VOC topics.
- Use reasonable request rates and follow applicable law, Yahoo! JAPAN terms, and your organization's data-handling rules.

# Actor input Schema

## `searchQueries` (type: `array`):

Japanese keywords to search on Yahoo! Chiebukuro. Results are deduplicated across queries.

## `startUrls` (type: `array`):

Public Yahoo! Chiebukuro question detail URLs. Query parameters are removed and stable question IDs are retained.

## `questionStatus` (type: `string`):

Status filter applied to keyword searches. Direct URLs are always collected.

## `maxQuestionsPerQuery` (type: `integer`):

Maximum search results accepted for each keyword before cross-query deduplication.

## `maxSearchPages` (type: `integer`):

Hard safety cap. Yahoo! Chiebukuro currently shows up to 10 questions per search page.

## `maxAnswersPerQuestion` (type: `integer`):

Use 0 to collect all displayed answers. Use a positive value for a bounded pilot.

## `includeReplies` (type: `boolean`):

Preserve public reply objects nested under each answer when Yahoo exposes them on the page.

## `outputMode` (type: `string`):

Nested keeps one row per question. Flat adds one row per answer with repeated question context. Both provides both forms.

## `concurrency` (type: `integer`):

Number of question pages processed in parallel. Reduce this if Yahoo responses become unstable.

## `requestDelayMs` (type: `integer`):

Politeness delay applied before every Yahoo request.

## `maxRequestRetries` (type: `integer`):

Total attempts for transient request failures, including the first request.

## Actor input object example

```json
{
  "searchQueries": [],
  "startUrls": [],
  "questionStatus": "all",
  "maxQuestionsPerQuery": 100,
  "maxSearchPages": 100,
  "maxAnswersPerQuestion": 0,
  "includeReplies": true,
  "outputMode": "both",
  "concurrency": 5,
  "requestDelayMs": 250,
  "maxRequestRetries": 3
}
```

# Actor output Schema

## `results` (type: `string`):

Default dataset. Use record\_type to distinguish question, answer, search\_audit, question\_audit, and run\_audit rows.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("research_master/yahoo-chiebukuro-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("research_master/yahoo-chiebukuro-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call research_master/yahoo-chiebukuro-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,research_master/yahoo-chiebukuro-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/NOSYJbBPtGYHCXmZs/builds/ocWF0qNAIZFqrjIi0/openapi.json
