J-Net21 Case Studies Scraper avatar

J-Net21 Case Studies Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
J-Net21 Case Studies Scraper

J-Net21 Case Studies Scraper

Extract public J-Net21 case-study article metadata from the official SME support website.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

LogFabric

LogFabric

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Extracts public case-study article metadata from the official J-Net21 SME support website (https://j-net21.smrj.go.jp/special/), operated by the Organization for Small & Medium Enterprises and Regional Innovation, Japan (SMRJ).

What this Actor does

  • Fetches the public J-Net21 case-study listing pages (/special/ and /special/index.php?page=N).
  • Parses each visible article card and extracts metadata: title, article URL, category, published date, organization name, location, tags, and image URL.
  • Paginates only as far as needed to reach maxItems (or until the site runs out of pages).
  • Writes results to the default dataset and a RUN_SUMMARY object to the default key-value store.

What this Actor does NOT do

  • This is not a contact scraper. It does not extract emails, phone numbers, or personal contact details.
  • It does not extract any private, customer, or account data.
  • It does not visit detail pages in v0 — only the listing pages are parsed.
  • It does not download images, PDFs, or any other files (an imageUrl is extracted, but the image itself is never fetched).
  • It does not use a proxy, login, cookies, or session state.
  • It does not solve CAPTCHAs or attempt to bypass any access controls.
  • It does not crawl any site other than the official J-Net21 domain.
  • It uses Crawlee + Cheerio only — no headless browser (Playwright) is used.

Input

FieldTypeDefaultRangeDescription
maxItemsinteger201–100Maximum number of records to extract.
debugbooleanfalseEnables verbose debug logging for the run.

Example input:

{
"maxItems": 20,
"debug": false
}

Output example

Each dataset record looks like this:

{
"title": "逆境を力に変え「水産物」で世界に挑む、武器は機動力とアイデア「株式会社ヤマナカ」",
"pageUrl": "https://j-net21.smrj.go.jp/special/vibrant/20260619.html",
"category": "事例",
"publishedDate": "2026-06-19",
"organizationName": "株式会社ヤマナカ",
"location": "宮城県 石巻市",
"tags": ["経営戦略", "販路開拓・海外展開"],
"imageUrl": "https://j-net21.smrj.go.jp/special/vibrant/img/20260619.jpg",
"sourceName": "J-Net21",
"sourceUrl": "https://j-net21.smrj.go.jp/special/",
"found": true,
"retrievedAt": "2026-07-01T05:00:00.000Z"
}

If a card is missing a required field (title or article link), it is skipped and counted in recordsSkipped / skippedDueToLimit in the RUN_SUMMARY — it is never pushed as a partial or guessed record.

Output limits and cost control

  • maxItems (input) is clamped to an internal hard cap of 100.

  • If the platform sets ACTOR_MAX_PAID_DATASET_ITEMS, the Actor also respects that limit:

    effectiveMaxItems = min(input.maxItems, ACTOR_MAX_PAID_DATASET_ITEMS, 100)
  • The Actor stops pushing records as soon as effectiveMaxItems is reached, and stops paginating — it will not fetch listing pages beyond what is needed.

  • Any additional cards visible on a page after the limit is reached are counted in skippedDueToLimit, not treated as errors.

RUN_SUMMARY

A RUN_SUMMARY object (schema RUN_SUMMARY v1) is written to the default key-value store at the end of every run. It contains:

FieldMeaning
totalItemsNumber of records actually pushed to the dataset.
requestedMaxItemsThe maxItems value from input.
effectiveMaxItemsThe actual cap applied after cost controls.
actorMaxPaidDatasetItemsValue read from ACTOR_MAX_PAID_DATASET_ITEMS (or null).
skippedDueToLimitCards seen but not pushed because the limit was already reached.
errorCountNumber of severe issues (blocked page, failed request, etc.).
warningCountNumber of non-fatal issues (a card that failed to parse, etc.).
warningsArray of human-readable warning/error messages.
sourceUrlThe main listing page used as the source for this run.
requestsFinishedNumber of listing-page requests that completed.
requestsFailedNumber of listing-page requests that failed.
cardsSeenTotal article cards seen across all parsed listing pages.
recordsMatchedValid records successfully pushed (should equal totalItems).
recordsSkippedCards skipped because required fields were missing/unparseable.
retrievedAtISO timestamp for the run.

Notes on severity:

  • Reaching maxItems is not an error — it is reflected only in skippedDueToLimit.
  • Fewer results than requested (e.g., the site simply has fewer articles than maxItems) is not an error.
  • A single card that fails to parse adds a warning and the run continues.
  • An HTTP failure on a listing page increments requestsFailed and errorCount.
  • If the source returns HTTP 403, a CAPTCHA/login page, or a listing page with zero article cards on the very first page, the Actor records this as an error, stops crawling, and reflects it clearly in RUN_SUMMARY.

Limitations

  • Only listing-page metadata is extracted; full article body text is not collected (v0 does not visit detail pages).
  • The location field is parsed from the organization line's parenthetical text (e.g. 会社名 (県 市)); if the source page changes this format, the field may come back as null for some records without failing the whole run.
  • If J-Net21 changes its HTML structure (class names such as news-card, news-card__ttl, etc.), extraction may return fewer fields or fail — this is intentionally treated as a warning/error rather than silently guessed data.
  • The Actor does not use a proxy, so it is subject to the plain outbound IP's access to the site; heavy rate limiting or geo-blocking by the source site is out of scope.

Data source

All data comes from the official public J-Net21 case-study listing pages: https://j-net21.smrj.go.jp/special/ (operated by SMRJ, an independent administrative agency of Japan). This Actor only reads publicly available listing metadata and performs no login, no scraping of private data, and no downloading of files or images.