# BBC News Headlines Scraper (`myagizm/bbc-news-scraper`) Actor

Collect structured headlines and article metadata from selected BBC News sections.

- **URL**: https://apify.com/myagizm/bbc-news-scraper.md
- **Developed by:** [MYM](https://apify.com/myagizm) (community)
- **Categories:** News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.80 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## BBC News Headlines Scraper (No BBC API Key, No Login)

![Apify Actor](https://img.shields.io/badge/Apify-Actor-00A86B) ![Public headlines](https://img.shields.io/badge/Data-Public_headlines-blue) ![No BBC login](https://img.shields.io/badge/BBC_login-Not_required-black) ![Exports](https://img.shields.io/badge/Export-JSON_CSV_Excel-orange) ![Pricing](https://img.shields.io/badge/Pricing-Pay_per_headline-green)

**BBC News Headlines Scraper turns public BBC World, UK, Business, and Technology section headlines into a structured dataset. Collect article titles, canonical article links, stable article identifiers, section labels, and summaries when displayed. Use the output for news monitoring, research, editorial discovery, spreadsheet reporting, and AI-assisted briefings.** This is a headline metadata product, not a full-text article crawler or a keyword-search engine.

> Start with `world` and a small result limit. No BBC account, BBC API key, or BBC cookies are needed. Running through the Apify API does require your Apify token. Apify usage credits may cover eligible usage; this Actor is not an unlimited free service.

### Table of contents

- [What can this Actor do?](#what-can-this-actor-do)
- [Who uses BBC headline data?](#who-uses-bbc-headline-data)
- [What data can I collect?](#what-data-can-i-collect)
- [How to collect headlines](#how-to-collect-headlines)
- [Input example](#input-example)
- [Real output example](#real-output-example)
- [Limits and accuracy](#limits-and-accuracy)
- [Pricing](#pricing)
- [Practical tips](#practical-tips)
- [Want other public data?](#want-other-public-data)
- [MCP and AI agents](#mcp-and-ai-agents)
- [Integrations and API](#integrations-and-api)
- [Support](#support)
- [Frequently asked questions](#frequently-asked-questions)
- [Related searches](#related-searches)
- [Disclaimer](#disclaimer)
- [Resources](#resources)
- [中文说明](#中文说明)

### What can this Actor do?

✅ Collect current headline cards from one supported news section per run.

✅ Return one row per unique article identifier in the section snapshot.

✅ Preserve public article URLs so a researcher can open the story and check the original context.

✅ Include a short summary when it appears on the listing; leave unavailable information null rather than inventing a value.

✅ Export the same dataset through Apify in JSON, CSV, Excel, XML, or other supported formats.

✅ Run on demand, from the Apify API, from a saved task, or on a schedule configured in your account.

✅ Support an upper result limit without suggesting that every section always contains that many articles.

The Actor does **not** retrieve article bodies, images, video files, comments, journalist profiles, sentiment scores, or historical archives. It does not perform arbitrary keyword searches. The input named `query` means a section slug, not a natural-language search request.

### Who uses BBC headline data?

- **Editors and journalists:** build a short discovery queue and open each article before writing or quoting it.
- **News analysts:** compare recurring section snapshots, tracking article IDs and changes to headline wording.
- **Researchers:** collect a bounded set of public headline metadata, while recording when the dataset was obtained.
- **Business teams:** monitor business headlines alongside their own market sources without treating a headline as investment advice.
- **Technology teams:** create a discovery feed for product, policy, and technology reporting.
- **AI workflow builders:** provide a compact, linked set of headlines to a summarization system, with clear evidence boundaries.

A title is not a complete account of an event. Review linked reporting before drawing conclusions, publishing a summary, or using the data for an operational decision.

### What data can I collect?

#### Populated in the verified example

| Field | Type | Description |
|---|---|---|
| `id` | string | Article identifier suitable for deduplicating repeated snapshots. |
| `articleId` | string | Article identifier exposed separately for spreadsheet and integration compatibility. |
| `title` | string | Headline text displayed by the section listing. |
| `url` | string | Absolute BBC article link. Use this to review the story. |
| `section` | string | Normalized requested section: world, uk, business, or technology. |

#### Populated when the listing provides it

| Field | Type | Description |
|---|---|---|
| `summary` | string or null | Short card description. Not full article text. |
| `publishedAt` | string or null | Absolute date/time when available in the listing. A missing value remains null. |
| `publishedText` | string or null | Relative or display-oriented time label when available. Not a guaranteed machine-readable timestamp. |

The **BBC headlines** dataset view presents title, summary, section, available time fields, article link, and article ID. The full JSON dataset retains all returned fields. A blank table cell can represent null, not necessarily a scraping failure. Check the raw JSON when investigating optional fields.

### How to collect headlines

1. Open the Actor in Apify and sign in to your Apify account.
2. Choose one supported section in `query`.
3. Set `maxItems` to the maximum number of rows you want for this snapshot.
4. Leave `timeoutSeconds` at a sensible value such as 20 or 25 seconds.
5. Start the run and wait for its terminal status.
6. Open the dataset, inspect a few titles and article URLs, and select an export format.
7. Save a task if you want to reuse the same input. Create a schedule separately if you need recurring snapshots.

Start small when designing a workflow. Validate the article links and null handling before increasing the result limit or adding scheduled runs. Every schedule execution is a fresh snapshot, not an incremental cursor over a permanent archive.

### Input example

```json
{"query":"world","maxItems":3,"timeoutSeconds":25}
```

| Input | Type | Range / values | Meaning |
|---|---|---|---|
| `query` | string | world, uk, business, technology | One supported section. Spaces around the slug and case are normalized. |
| `maxItems` | integer | 1–50; default 20 | Upper bound on unique headline rows. The actual result can be smaller. |
| `timeoutSeconds` | integer | 1–45; default 20 | Request timeout setting. Not a promise that the entire run finishes in that many seconds. |

Do not pass article URLs, search sentences, unsupported section names, or a list of sections as `query`. Use separate runs or saved tasks for separate sections. Input errors finish SUCCEEDED with no results and no charge; see OUTPUT for the reason. Genuine service or access failures are not intentionally reported as successful data delivery.

### Real output example

The following item was returned by a live verification run. It is a snapshot, not an assertion that this headline will remain at the top of the section:

```json
{
  "id": "c61wv7lgex13o",
  "url": "https://www.bbc.com/news/articles/c61wv7lgex13o",
  "title": "Flydubai co-pilot attacked captain with axe, UAE official says",
  "section": "world",
  "summary": "The man accused of trying to take over the Israel-bound jet is named as Hamam al-Hammami by several media outlets.",
  "articleId": "c61wv7lgex13o",
  "publishedAt": null,
  "publishedText": null
}
```

The verified three-result run returned three distinct article IDs. Both publication fields were null in this sample. Do not replace missing dates with the run start time: that would incorrectly label collection time as publication time.

### Limits and accuracy

- Four supported sections are exposed by the current input contract. Other sections are not promised.
- One run reads one section snapshot. It does not paginate a historical news archive.
- The result cap is 50, but a page can contain fewer than 50 eligible unique articles. The limit is a ceiling, not a guaranteed delivery quantity.
- Deduplication applies within a run. The same article can appear in several later snapshots or in several sections; keep your own cross-run history if needed.
- Titles and summaries can change after publication. An unchanged article ID with a changed title should be treated as a revision, not automatically as a new article.
- Optional fields can be null. The Actor does not infer author, full body, image, geographic entity, absolute timestamp, or sentiment from a headline.
- Listing order is page order at collection time. It is not a verified chronological ranking or a severity score.
- A result link provides a review path, not a guarantee that the full article will remain accessible forever in every location.
- The public page can change. A previously successful input is not a service-level guarantee for future runs.
- Apify account limits, spending limits, and scheduling settings remain applicable. This Actor does not document a paid-provider free-plan quota because it does not use a paid data provider for its section requests.

### Pricing

**$0.0008 per stored headline**, equivalent to **$0.80 per 1,000 stored headlines**. The configured pricing model is PAY_PER_EVENT, using the dataset-item event. There is no separately configured Actor-start event. This release preserves the existing price; it does not introduce a new tier discount or change paid-plan rates.

Input errors with zero dataset rows incur no result charge. Failed runs that store no rows likewise have no headline result charge. Apify platform usage, account credits, spending limits, and applicable plan terms are separate from the displayed per-headline event price. Owner-account verification runs can use the USER billing model and show zero charged result events; that does not mean third-party customer runs are unpriced.

| Stored headlines | Actor result charge |
|---|---|
| 1 | $0.0008 |
| 5 | $0.0040 |
| 20 | $0.0160 |
| 50 | $0.0400 |
| 1,000 across multiple runs | $0.8000 |

Budget for the actual number of stored rows rather than assuming every run reaches `maxItems`. Fetching or exporting an existing dataset does not itself create another Actor result row. Starting another run can return and bill the same article again because it is a new snapshot.

### Practical tips

- Keep `id`, `articleId`, and `url` in your exported table even if your dashboard mainly displays titles.
- Store a separate collection timestamp in your own integration. Do not overwrite `publishedAt` with that timestamp.
- Compare snapshots by article ID first and by headline text second. Text-only matching can miss headline revisions.
- Use `world` for general international discovery; use another supported section when you need a narrower feed.
- Preserve the section column when combining runs. An article may legitimately appear in more than one section.
- Treat summaries as optional. A workflow that requires a non-empty summary should filter missing values rather than fabricate them.
- Prefer JSON for typed downstream processing and CSV or Excel for human review. Inspect null conversion in your chosen export.
- Keep scheduled runs proportional to your actual need. Frequent snapshots can repeatedly store the same articles and consume credits without adding useful history.

### Section recipes and workflow checks

#### International news discovery: `world`

```json
{"query":"world","maxItems":5,"timeoutSeconds":25}
```

Use this saved input for a bounded current snapshot, not a query over an unlimited archive. Confirm that returned section values match `world` and that every row has a title, article identifier, and absolute article URL. The section can expose fewer than five eligible articles; that is a page-cap outcome rather than permission to invent missing rows. Keep null dates intact. If a downstream report needs a collection timestamp, add one under a separate integration-owned field.

When repeating this recipe, match by article ID. Store the current title and optional summary alongside the previously observed values if revision history matters. A repeated identifier can be a useful continuity observation even when it does not add a new story. Do not assume a changed title or a different section placement means a new article. Keep the run ID and dataset ID in your own audit trail so each report can be traced to an actual collection.

For an editorial or AI briefing, open the article links before making detailed factual claims. Label an unreviewed record as headline metadata. If summary is null, a model-generated sentence must be labeled as your derived interpretation rather than the publisher's description. Apply export validation to a small sample before scheduling unattended delivery; check string IDs, null dates, Unicode headline text, and URL columns at the destination.

#### UK headline monitoring: `uk`

```json
{"query":"uk","maxItems":5,"timeoutSeconds":25}
```

Use this saved input for a bounded current snapshot, not a query over an unlimited archive. Confirm that returned section values match `uk` and that every row has a title, article identifier, and absolute article URL. The section can expose fewer than five eligible articles; that is a page-cap outcome rather than permission to invent missing rows. Keep null dates intact. If a downstream report needs a collection timestamp, add one under a separate integration-owned field.

When repeating this recipe, match by article ID. Store the current title and optional summary alongside the previously observed values if revision history matters. A repeated identifier can be a useful continuity observation even when it does not add a new story. Do not assume a changed title or a different section placement means a new article. Keep the run ID and dataset ID in your own audit trail so each report can be traced to an actual collection.

For an editorial or AI briefing, open the article links before making detailed factual claims. Label an unreviewed record as headline metadata. If summary is null, a model-generated sentence must be labeled as your derived interpretation rather than the publisher's description. Apply export validation to a small sample before scheduling unattended delivery; check string IDs, null dates, Unicode headline text, and URL columns at the destination.

#### Business news review: `business`

```json
{"query":"business","maxItems":5,"timeoutSeconds":25}
```

Use this saved input for a bounded current snapshot, not a query over an unlimited archive. Confirm that returned section values match `business` and that every row has a title, article identifier, and absolute article URL. The section can expose fewer than five eligible articles; that is a page-cap outcome rather than permission to invent missing rows. Keep null dates intact. If a downstream report needs a collection timestamp, add one under a separate integration-owned field.

When repeating this recipe, match by article ID. Store the current title and optional summary alongside the previously observed values if revision history matters. A repeated identifier can be a useful continuity observation even when it does not add a new story. Do not assume a changed title or a different section placement means a new article. Keep the run ID and dataset ID in your own audit trail so each report can be traced to an actual collection.

For an editorial or AI briefing, open the article links before making detailed factual claims. Label an unreviewed record as headline metadata. If summary is null, a model-generated sentence must be labeled as your derived interpretation rather than the publisher's description. Apply export validation to a small sample before scheduling unattended delivery; check string IDs, null dates, Unicode headline text, and URL columns at the destination.

#### Technology reporting discovery: `technology`

```json
{"query":"technology","maxItems":5,"timeoutSeconds":25}
```

Use this saved input for a bounded current snapshot, not a query over an unlimited archive. Confirm that returned section values match `technology` and that every row has a title, article identifier, and absolute article URL. The section can expose fewer than five eligible articles; that is a page-cap outcome rather than permission to invent missing rows. Keep null dates intact. If a downstream report needs a collection timestamp, add one under a separate integration-owned field.

When repeating this recipe, match by article ID. Store the current title and optional summary alongside the previously observed values if revision history matters. A repeated identifier can be a useful continuity observation even when it does not add a new story. Do not assume a changed title or a different section placement means a new article. Keep the run ID and dataset ID in your own audit trail so each report can be traced to an actual collection.

For an editorial or AI briefing, open the article links before making detailed factual claims. Label an unreviewed record as headline metadata. If summary is null, a model-generated sentence must be labeled as your derived interpretation rather than the publisher's description. Apply export validation to a small sample before scheduling unattended delivery; check string IDs, null dates, Unicode headline text, and URL columns at the destination.

### Want other public data?

See the [myagizm Actor profile](https://apify.com/myagizm) for currently available tools. Public cross-platform options include [Reddit Scraper](https://apify.com/myagizm/reddit-scraper), [Google News Scraper](https://apify.com/myagizm/google-news-scraper), [YouTube Transcript Scraper](https://apify.com/myagizm/youtube-transcript-scraper), and [LinkedIn Profile Scraper](https://apify.com/myagizm/linkedin-profile-scraper). Each product has a separate input contract, pricing model, and data scope. A link here is not a claim that this headline Actor also performs those functions.

### MCP and AI agents

Apify's MCP integration can make Actors available to compatible AI clients. Supply the exact Actor identifier, a supported section, and a bounded result cap. Ask your AI workflow to cite returned article URLs and distinguish headline-only evidence from reviewed article text. An AI agent cannot recover an unavailable publication date merely because it can generate a plausible date.

This Actor does not expose a separate BBC credential flow or a custom MCP server. Use the authentication and Actor-invocation instructions of your chosen Apify MCP client. Review proposed inputs and costs before enabling unattended runs.

### Integrations and API

Replace `YOUR_APIFY_TOKEN` with your own token. Keep it in a secret manager or environment variable, not a public notebook or shared URL. These are usage examples, not pre-executed API responses.

#### 1. Synchronous run with dataset output

```bash
curl -X POST 'https://api.apify.com/v2/acts/myagizm~bbc-news-scraper/run-sync-get-dataset-items'   -H 'Authorization: Bearer YOUR_APIFY_TOKEN' -H 'Content-Type: application/json'   --data '{"query":"world","maxItems":3,"timeoutSeconds":25}'
```

#### 2. Start an asynchronous run

```bash
curl -X POST 'https://api.apify.com/v2/acts/myagizm~bbc-news-scraper/runs'   -H 'Authorization: Bearer YOUR_APIFY_TOKEN' -H 'Content-Type: application/json'   --data '{"query":"technology","maxItems":5,"timeoutSeconds":25}'
```

Retain the returned run ID. Poll the exact run until terminal status, then read its `defaultDatasetId`. A submitted run is not yet a verified successful dataset.

#### 3. Download an existing dataset

```bash
curl 'https://api.apify.com/v2/datasets/YOUR_DATASET_ID/items?format=json&clean=true'   -H 'Authorization: Bearer YOUR_APIFY_TOKEN'
```

Replace the dataset ID with the actual ID from your run. For table-ready output, request `view=overview`. Use Apify integrations to connect your task to services such as Make, Zapier, n8n, or your own HTTP workflow. Configure delivery, scheduling, retries, and destination credentials separately; they are not hidden Actor inputs.

### Support

Use the Actor's Issues tab for product questions. Include the run ID, section, result cap, terminal status, and a concise description of the expected versus observed result. Do not post API tokens, cookies, personal credentials, or private account details. If an optional field is empty, include an example article ID and explain why you expected that field to exist in the listing.

### Frequently asked questions

#### Do I need a BBC API key?

No BBC API key is required. The Actor collects public section headline metadata. Apify API calls still require your Apify token, and using an Apify integration may require that integration’s credentials. These are different authentication requirements; keep the Apify token private.

#### Does it extract complete articles?

No. The output contract covers listing headlines and optional short summaries. It does not follow each article to extract body text, bylines, images, or video. A summary is not a substitute for the full article, and the article URL is provided for human review.

#### What does query mean?

It means a section slug: world, uk, business, or technology. It is not a keyword field. A phrase such as electric vehicles or an article URL is outside this contract. For several sections, create separate runs and merge the resulting datasets in your application.

#### Why did I get fewer rows than requested?

maxItems is an upper bound. A section snapshot can expose fewer eligible unique articles than the requested cap. The Actor does not invent rows or silently expand into another section to fill the limit. Review the real stored row count when budgeting and assessing completeness.

#### Is publishedAt always available?

No. An absolute timestamp is returned only when available in the listing representation. Otherwise publishedAt is null. A relative label, when present, can be returned separately as publishedText. Never label the collection time as publication time without explicitly storing it in a different field.

#### Can I collect historical headlines?

Not through this input contract. Each run is a current section snapshot, with no archive date, page cursor, or historical range input. You can build your own history by saving scheduled snapshots, while documenting collection times and deduplicating by article identifier.

#### Does the Actor deduplicate results?

Within a run, eligible article identifiers are unique. Cross-run deduplication belongs in your integration because the same story may remain visible for hours or appear in multiple sections. Preserve both section and collection time when building a monitoring archive.

#### Can a headline change while its ID stays the same?

Yes. Publishers can update headlines and summaries without replacing the article identifier. Keep revision history if wording changes matter to your research. A title change is not by itself evidence of a new story, and a stable ID does not prove the story content never changed.

#### Are summaries guaranteed?

No. summary reflects a short description when a card provides one. Null or empty values can be valid. If your downstream system requires text, filter these rows or open and independently review the article; do not invent a summary and attribute it to the publisher.

#### Is the order chronological?

The output follows listing order at collection time. The Actor does not assert that this order is strictly newest-first, most-read, most-important, or an editorial significance ranking. Apply your own ordering only when the necessary reliable fields exist.

#### Can I export to CSV or Excel?

Yes, use Apify dataset exports. JSON is preferable when preserving nulls and field types matters. In spreadsheet formats, inspect how missing values and long text are displayed. Retain article IDs and links so human reviewers can trace a row back to a specific story.

#### Can I schedule collection?

Yes, configure an Apify schedule for a saved task or Actor input. Scheduling is an account feature, not a promise of an incremental archive. Repeated runs can store the same article again and create additional result charges; choose a cadence proportionate to the changes you need to observe.

#### How are results priced?

The configured event price is $0.0008 per stored headline. The headline event is separate from Apify account and platform usage terms. This README does not advertise an additional paid-tier discount. Consult the pricing panel and your account usage records for actual customer billing.

#### Do invalid inputs produce charges?

Input errors end with SUCCEEDED, zero result rows, and no headline result charge. Read the OUTPUT record for the explanation. A green status with zero rows is not successful data collection; applications should inspect both status and dataset size before reporting delivery.

#### What about service failures?

A genuine access or service failure is not intentionally converted into a successful headline dataset. Record the run ID and check the terminal status and safe error message. Avoid aggressive blind retries; they can increase usage without establishing that the original access problem is resolved.

#### Do I need to configure a proxy?

There is no proxy input in this Actor’s public schema. Do not add undocumented proxy settings and assume they will be honored. Geographic differences can affect public article access, but the Actor does not expose country selection or a guarantee of identical listings in every location.

#### Can I use the data in an AI briefing?

Yes, within your lawful use case, but describe the evidence as headline metadata. Keep article links in the prompt or output, distinguish model-written summaries from publisher descriptions, and review claims before sharing. Null timestamps and missing summaries remain unknown, not facts for a model to guess.

#### Can it collect private or logged-in content?

No. This product is limited to the supported public section listings and does not accept BBC cookies or account credentials. It does not bypass a private account, login restriction, subscription, or other access-control requirement. Do not post credentials in support messages.

#### Is this an official BBC product?

No. It is an independent data-collection tool and is not endorsed by or affiliated with the BBC. BBC names, marks, and article content belong to their respective owners. The logo identifies the target platform; it does not communicate an official partnership.

#### What should I include in a support request?

Provide the run ID, exact section, maxItems, terminal status, and one example article ID if relevant. Explain whether the issue concerns missing rows, optional fields, an export view, or an API integration. Remove secrets and personal data before sharing logs or input samples.

### Related searches

BBC News scraper · BBC headline scraper · BBC world headlines · BBC UK news export · BBC business headlines API · BBC technology news dataset · public news metadata · news monitoring automation · headline data collection · article URL extraction · BBC news CSV · BBC news Excel · BBC headlines JSON · structured news headlines · news section snapshots · editorial research tools · headline revision monitoring · news discovery workflow · scheduled news collection · public article identifiers · BBC summary extraction · no BBC API key scraper · no login news scraper · pay per headline · Apify news Actor · AI news briefing inputs · news dataset export · section-level headline monitoring

### Disclaimer

This is an independent tool, not an official BBC product. It is not endorsed by or affiliated with the BBC. BBC names, logos, and article content belong to their respective owners. Collect only public data within applicable law and terms. Consider copyright and database rights before republishing; public accessibility is not unrestricted reuse permission. Follow GDPR, CCPA, and other applicable privacy rules if combining headline data with personal information. Nothing here is legal, financial, or editorial advice.

### Resources

- [Apify API documentation](https://docs.apify.com/api/v2)
- [Dataset export documentation](https://docs.apify.com/platform/storage/dataset)
- [Schedules](https://docs.apify.com/platform/schedules)
- [Integrations](https://apify.com/integrations)
- [Apify MCP server](https://docs.apify.com/platform/integrations/mcp)
- [More myagizm Actors](https://apify.com/myagizm)

### 中文说明

## BBC News 标题采集器（无需 BBC API 密钥，无需 BBC 登录）

![Apify Actor](https://img.shields.io/badge/Apify-Actor-00A86B) ![公开标题](https://img.shields.io/badge/Data-Public_headlines-blue) ![无需登录](https://img.shields.io/badge/BBC_login-Not_required-black) ![导出](https://img.shields.io/badge/Export-JSON_CSV_Excel-orange) ![按结果计费](https://img.shields.io/badge/Pricing-Pay_per_headline-green)

**将 BBC World、UK、Business 和 Technology 公开版块的新闻标题转换为结构化数据集。输出文章标题、文章链接、稳定标识、版块和页面提供的摘要。适合新闻监测、编辑发现、研究、电子表格报告及 AI 辅助简报。** 本工具不是全文爬虫，也不是任意关键词搜索引擎。

> 从 world 和较小结果上限开始。无需 BBC 账户、BBC API 密钥或 cookies。通过 Apify API 调用仍需 Apify token。符合条件的账户用量可能由 Apify credits 抵扣，但这不是无限免费服务。

#### 目录

功能 · 适用用户 · 数据字段 · 操作步骤 · 输入示例 · 真实输出 · 限制与准确性 · 价格 · 实用建议 · 其他数据 · MCP · API 与集成 · 支持 · 常见问题 · 相关搜索 · 免责声明 · 资源

#### 功能

✅ 每次运行采集一个支持版块的当前标题卡片。

✅ 单次快照中，每个唯一文章标识保存为一行。

✅ 保留公开文章链接，方便打开原文核查上下文。

✅ 页面提供短摘要时返回摘要；缺失信息保留 null，不编造字段。

✅ 通过 Apify 导出 JSON、CSV、Excel、XML 等支持格式。

✅ 支持手动运行、API 调用、保存任务及账户中配置的计划。

✅ 结果数量是上限，不保证每个版块都能达到该数量。

本 Actor 不获取正文、图片、视频文件、评论、记者资料、情绪评分或历史归档。query 表示版块标识，不是自然语言搜索词。需要完整报道时，应打开文章链接并自行核查，不要把标题数据当作阅读全文的证据。

#### 适用用户

- 编辑与记者：建立候选报道列表，写作前核对原文。
- 新闻分析人员：比较多次快照，观察文章 ID 与标题措辞变化。
- 研究人员：保存有限范围的公开元数据，并记录采集时间。
- 商业团队：结合其他来源查看商业新闻，不把标题视为投资建议。
- 技术团队：发现产品、政策与科技报道。
- AI 工作流开发者：向简报系统提供带链接、边界清楚的小型标题集合。

标题不是事件的完整说明。在形成结论、对外发布摘要或作出业务决策前，应核查链接中的报道。

#### 数据字段

已验证样例中存在的字段：

| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 可用于多次快照去重的文章标识。 |
| articleId | string | 单独暴露的文章 ID，便于表格与现有集成。 |
| title | string | 版块列表显示的标题。 |
| url | string | BBC 文章绝对链接，用于核对报道。 |
| section | string | 规范化后的请求版块。 |

仅在列表提供时填充的字段：

| 字段 | 类型 | 说明 |
|---|---|---|
| summary | string 或 null | 卡片短描述，不是文章全文。 |
| publishedAt | string 或 null | 列表提供的绝对日期时间；缺失时为 null。 |
| publishedText | string 或 null | 可选相对时间或展示标签，不保证机器可解析。 |

BBC headlines 表格视图显示标题、摘要、版块、可用时间、链接和文章 ID。完整 JSON 保留所有返回字段。表格空单元格可能代表 null，并不一定是采集失败。调查可选字段时应查看原始 JSON。

#### 如何使用

1. 在 Apify 打开 Actor 并登录自己的 Apify 账户。
2. 在 query 中选择一个支持版块。
3. 用 maxItems 设置当前快照的结果上限。
4. timeoutSeconds 可保持在 20 或 25 秒等合理值。
5. 启动后等待最终运行状态。
6. 查看数据集，抽查标题和文章 URL，再导出所需格式。
7. 需要复用输入时保存任务；需要重复快照时另行配置计划。

先用较小样例验证链接和空值处理，再扩大数量或添加计划。每次计划执行是一次新快照，不是永久归档的增量游标。

#### 输入示例

```json
{"query":"world","maxItems":3,"timeoutSeconds":25}
```

| 输入 | 类型 | 范围 | 含义 |
|---|---|---|---|
| query | string | world、uk、business、technology | 一个支持版块；首尾空格与大小写会规范化。 |
| maxItems | integer | 1–50；默认 20 | 唯一标题行数上限，实际数量可能更少。 |
| timeoutSeconds | integer | 1–45；默认 20 | 请求超时设置，不是整个运行时间承诺。 |

不要传入文章 URL、搜索句子、未支持的版块或版块数组。多个版块应分开运行。输入错误以 SUCCEEDED 结束，无结果且无结果费用；原因请查看 OUTPUT。真实服务或访问故障不会被故意描述为成功交付。

#### 真实输出示例

下列记录来自真实验证运行，只代表当时快照，不保证之后仍为版块首条标题：

```json
{
  "id": "c61wv7lgex13o",
  "url": "https://www.bbc.com/news/articles/c61wv7lgex13o",
  "title": "Flydubai co-pilot attacked captain with axe, UAE official says",
  "section": "world",
  "summary": "The man accused of trying to take over the Israel-bound jet is named as Hamam al-Hammami by several media outlets.",
  "articleId": "c61wv7lgex13o",
  "publishedAt": null,
  "publishedText": null
}
```

验证运行请求三条并获得三个不同文章 ID。样例中的两个发布时间字段均为 null。不要把运行开始时间填入 publishedAt；采集时间不等于发布时间。

#### 限制与准确性

- 当前只公开四个版块，不承诺其他版块可用。
- 一次运行读取一个当前快照，不翻页访问历史归档。
- 上限为 50，但页面可能提供少于 50 个符合条件的唯一文章。
- 单次运行去重；跨运行或跨版块的重复需要自行处理。
- 文章标题和摘要可被更新，ID 不变而标题变化通常应视为版本变化。
- 可选字段允许 null，不会从标题推断作者、全文、图片、绝对日期、地理实体或情绪。
- 页面顺序不是已验证的时间排序、阅读量排名或重要性分数。
- 链接是核查入口，不保证文章永远在所有地区可访问。
- 公开页面可能改变，过去成功不构成未来运行的服务级别保证。
- Apify 的账户、支出和计划限制仍适用。版块请求不使用付费数据供应商，因此本文不宣传不存在的付费供应商免费套餐额度。

#### 价格

每条已保存标题 **$0.0008**，即每 1,000 条 **$0.80**。定价模型为 PAY_PER_EVENT，使用数据集行事件；没有另配 Actor 启动收费事件。本次版本保留现有价格，不增加付费等级折扣或修改付费套餐价格。

输入错误且零行时没有标题结果费。失败运行若零行，也没有标题结果费。Apify 平台用量、账户 credits、支出上限和套餐条款与结果事件价格分别计算。开发者自己的验证运行可能使用 USER 计费模型并显示零结果事件，不能据此推断其他客户免费使用。

| 保存标题数 | Actor 结果费 |
|---|---|
| 1 | $0.0008 |
| 5 | $0.0040 |
| 20 | $0.0160 |
| 50 | $0.0400 |
| 多次运行累计 1,000 | $0.8000 |

按实际保存行数做预算，不要假定每次达到 maxItems。读取或导出已有数据集不会自行新增 Actor 结果行。新建运行可能再次返回同一文章，因为它代表另一份快照。

#### 实用建议

保留 ID、articleId 和 URL，哪怕面板主要展示标题。另存采集时间，不覆盖 publishedAt。先按 ID 再按标题比较快照，避免漏掉措辞修改。组合版块结果时保留 section。摘要缺失时筛选，不编造内容。类型敏感流程优先用 JSON，人工审核可用 CSV 或 Excel。计划频率应与真实需求相符，避免反复存储同一批文章却没有新增历史价值。

#### 版块方案与工作流检查

##### 国际新闻发现：`world`

```json
{"query":"world","maxItems":5,"timeoutSeconds":25}
```

此输入用于有限的当前快照，不是无限历史搜索。检查返回 section 是否为 world，并核对标题、文章标识与绝对 URL。实际可能少于五条，不能为达到请求数量编造结果。保留空日期；若报告需要采集时间，应在集成中另建字段。

重复运行时按文章 ID 比较。若关注版本变化，保存当前和以前的标题、可选摘要。重复 ID 可能说明报道持续可见，并不代表新增文章。不要仅因标题或版块位置变化就判断为新报道。保存运行 ID 与数据集 ID，使每份报告都能追溯真实采集。

编辑或 AI 简报在作出细节判断前应打开链接。未核对正文的记录要标为标题元数据。摘要为 null 时，模型生成的句子属于自己的推导，不能冒充发布方描述。启用无人值守投递前，先用小样例验证字符串 ID、空日期、Unicode 标题与 URL 列在目标系统中的表现。

##### 英国标题监测：`uk`

```json
{"query":"uk","maxItems":5,"timeoutSeconds":25}
```

此输入用于有限的当前快照，不是无限历史搜索。检查返回 section 是否为 uk，并核对标题、文章标识与绝对 URL。实际可能少于五条，不能为达到请求数量编造结果。保留空日期；若报告需要采集时间，应在集成中另建字段。

重复运行时按文章 ID 比较。若关注版本变化，保存当前和以前的标题、可选摘要。重复 ID 可能说明报道持续可见，并不代表新增文章。不要仅因标题或版块位置变化就判断为新报道。保存运行 ID 与数据集 ID，使每份报告都能追溯真实采集。

编辑或 AI 简报在作出细节判断前应打开链接。未核对正文的记录要标为标题元数据。摘要为 null 时，模型生成的句子属于自己的推导，不能冒充发布方描述。启用无人值守投递前，先用小样例验证字符串 ID、空日期、Unicode 标题与 URL 列在目标系统中的表现。

##### 商业新闻审核：`business`

```json
{"query":"business","maxItems":5,"timeoutSeconds":25}
```

此输入用于有限的当前快照，不是无限历史搜索。检查返回 section 是否为 business，并核对标题、文章标识与绝对 URL。实际可能少于五条，不能为达到请求数量编造结果。保留空日期；若报告需要采集时间，应在集成中另建字段。

重复运行时按文章 ID 比较。若关注版本变化，保存当前和以前的标题、可选摘要。重复 ID 可能说明报道持续可见，并不代表新增文章。不要仅因标题或版块位置变化就判断为新报道。保存运行 ID 与数据集 ID，使每份报告都能追溯真实采集。

编辑或 AI 简报在作出细节判断前应打开链接。未核对正文的记录要标为标题元数据。摘要为 null 时，模型生成的句子属于自己的推导，不能冒充发布方描述。启用无人值守投递前，先用小样例验证字符串 ID、空日期、Unicode 标题与 URL 列在目标系统中的表现。

##### 科技报道发现：`technology`

```json
{"query":"technology","maxItems":5,"timeoutSeconds":25}
```

此输入用于有限的当前快照，不是无限历史搜索。检查返回 section 是否为 technology，并核对标题、文章标识与绝对 URL。实际可能少于五条，不能为达到请求数量编造结果。保留空日期；若报告需要采集时间，应在集成中另建字段。

重复运行时按文章 ID 比较。若关注版本变化，保存当前和以前的标题、可选摘要。重复 ID 可能说明报道持续可见，并不代表新增文章。不要仅因标题或版块位置变化就判断为新报道。保存运行 ID 与数据集 ID，使每份报告都能追溯真实采集。

编辑或 AI 简报在作出细节判断前应打开链接。未核对正文的记录要标为标题元数据。摘要为 null 时，模型生成的句子属于自己的推导，不能冒充发布方描述。启用无人值守投递前，先用小样例验证字符串 ID、空日期、Unicode 标题与 URL 列在目标系统中的表现。

#### 想获取其他公开数据？

查看 [myagizm 产品页面](https://apify.com/myagizm)。跨平台工具包括 [Reddit](https://apify.com/myagizm/reddit-scraper)、[Google News](https://apify.com/myagizm/google-news-scraper)、[YouTube Transcript](https://apify.com/myagizm/youtube-transcript-scraper) 和 [LinkedIn Profile](https://apify.com/myagizm/linkedin-profile-scraper)。每个产品有自己的输入、价格和能力范围；本文链接不表示 BBC 标题 Actor 同时拥有这些功能。

#### MCP 与 AI 助手

兼容 AI 客户端可通过 Apify MCP 使用 Actor。提供准确 Actor 标识、支持版块和有限结果数量。让 AI 保留文章链接，区分只看标题的证据与核查过正文的证据。模型能生成一个看似合理的日期，并不意味着能够恢复真实缺失日期。

本产品没有独立 BBC 凭据流程，也没有自定义 MCP 服务。请按所选 Apify MCP 客户端说明完成认证。启用无人值守运行前，应审核输入与成本。

#### API 与集成

把 YOUR_APIFY_TOKEN 替换为你自己的 token，并保存在环境变量或密钥管理器中。以下是调用示例，不是已执行响应。

```bash
curl -X POST 'https://api.apify.com/v2/acts/myagizm~bbc-news-scraper/run-sync-get-dataset-items'   -H 'Authorization: Bearer YOUR_APIFY_TOKEN' -H 'Content-Type: application/json'   --data '{"query":"world","maxItems":3,"timeoutSeconds":25}'
```

```bash
curl -X POST 'https://api.apify.com/v2/acts/myagizm~bbc-news-scraper/runs'   -H 'Authorization: Bearer YOUR_APIFY_TOKEN' -H 'Content-Type: application/json'   --data '{"query":"technology","maxItems":5,"timeoutSeconds":25}'
```

```bash
curl 'https://api.apify.com/v2/datasets/YOUR_DATASET_ID/items?format=json&clean=true'   -H 'Authorization: Bearer YOUR_APIFY_TOKEN'
```

异步提交后保存运行 ID，轮询到最终状态，再读取 defaultDatasetId。提交成功不等于已验证数据集。表格视图可使用 view=overview。Make、Zapier、n8n 或 HTTP 工作流中的调度、重试、目标凭据和投递需单独配置，并非隐藏 Actor 输入。

#### 支持

在 Issues 页提出产品问题，附运行 ID、版块、结果上限、最终状态及预期与实际差异。不要公开 token、cookies、账户秘密或个人资料。可选字段缺失时，附文章 ID 并说明为什么认为列表应该提供该字段。

#### 常见问题

##### 需要 BBC API 密钥吗？

不需要 BBC API 密钥。本工具收集公开版块的标题元数据。通过 Apify API 调用时仍需你的 Apify token；连接其他集成时也可能需要对应服务的凭据。两种身份认证不要混淆，且不要公开 token。

##### 会提取文章全文吗？

不会。当前输出仅包含版块列表的标题和可选短摘要，不会逐篇提取正文、署名、图片或视频。摘要不等于全文。文章链接用于进一步核对内容，不能把仅有标题的记录描述为完整报道。

##### query 是关键词搜索吗？

不是。query 是版块标识，只接受 world、uk、business、technology。自然语言关键词、文章 URL 或多个版块组成的数组都不属于此接口。需要多个版块时，请分别运行，再在你的应用中合并结果。

##### 为什么结果少于请求数量？

maxItems 是上限，不是保证数量。当前页面可能只有较少的符合条件且去重后的文章。本工具不会编造记录，也不会悄悄改抓其他版块来凑数。预算和完整性判断应以实际保存的行数为准。

##### publishedAt 一定有值吗？

不一定。只有列表提供绝对时间时才会填入；否则为 null。如果有相对时间文本，可能单独放在 publishedText。采集时间和发布时间并不相同，不能为了填空而把运行开始时间当作文章发布时间。

##### 支持历史新闻归档吗？

当前接口不支持。每次运行都是当前版块快照，没有归档日期、分页游标或历史区间参数。你可以保存定时快照来建立自己的历史记录，但应记录采集时间，并使用文章标识进行跨运行去重。

##### 会自动去重吗？

单次运行中按文章标识去重。跨运行去重需要由你的集成处理，因为同一报道可能长时间保留在页面上，或出现在多个版块。建立监测归档时，应保留版块和采集时间，而不是仅按标题删除记录。

##### 标题变化时 ID 会变化吗？

不一定。发布方可能更新标题和摘要，但仍使用原文章标识。如果研究关心文字变化，应保存版本历史。标题变化并不能单独证明出现了新文章；同样，ID 不变也不意味着正文从未修改。

##### 摘要是必填信息吗？

不是。summary 只在列表卡片提供短描述时返回，null 或空值可能是正常情况。下游系统若必须有文本，应筛选这些记录或另行核对文章。不要自动生成摘要后再冒充发布方原文。

##### 结果一定按时间排序吗？

不会作此保证。结果反映采集时的列表顺序，不代表严格最新优先、阅读量排名或重要性排序。只有具备可信字段时，才应在自己的系统中重新排序；缺失时间不能由顺序推断。

##### 能导出 CSV 或 Excel 吗？

可以，使用 Apify 数据集导出功能。若需要保留 null 和字段类型，JSON 通常更合适。表格中应检查空值和长文本的显示方式，并保留文章 ID 与链接，让审核者能定位到具体报道。

##### 可以定时采集吗？

可以，在 Apify 中为保存的任务或 Actor 输入配置计划。定时运行是账户功能，并不等于增量归档。重复运行可能再次保存同一文章并产生新的结果费用，所以频率应与实际需要观察的变化相匹配。

##### 如何计费？

配置的事件价格为每条已保存标题 $0.0008。结果事件费用与 Apify 账户、平台用量规则是不同层面。本说明不宣传额外付费等级折扣。实际客户计费应结合价格面板和账户用量记录查看。

##### 无效输入会收费吗？

输入错误以 SUCCEEDED 结束，不保存结果行，也不产生标题结果费。原因见 OUTPUT。绿色状态且零行不等于成功采集数据；应用应同时检查状态和数据集大小，再决定是否向用户报告交付成功。

##### 服务故障如何处理？

真实访问或服务故障不会被故意转换为成功的标题数据集。请保留运行 ID，并检查最终状态与安全错误信息。不要盲目高频重试，否则可能增加用量却无法证明原来的访问问题已经解决。

##### 需要自行配置代理吗？

公开输入 schema 没有代理字段。不要添加未公开的代理参数并假定它会生效。不同地区可能影响公开文章访问，但本工具没有国家选择输入，也不保证所有位置看到完全相同的列表。

##### 能用于 AI 新闻简报吗？

可在合法用途范围内使用，但应明确证据只是标题元数据。保留文章链接，区分模型生成摘要与发布方描述，并在分享前核查事实。缺失时间和摘要仍是未知信息，不应要求模型猜测补齐。

##### 能获取登录后或私有内容吗？

不能。本产品仅处理受支持的公开版块列表，不接收 BBC cookies 或账户凭据，也不会绕过私有账户、登录限制、订阅或其他访问控制。支持消息中不要发布任何凭据。

##### 这是 BBC 官方产品吗？

不是。这是独立的数据采集工具，与 BBC 不存在官方隶属或背书关系。BBC 名称、标识及文章内容属于各自权利人。标识用于识别目标平台，不表示官方合作或授权关系。

##### 联系支持应提供什么？

提供运行 ID、准确版块、maxItems、最终状态，以及必要时的文章 ID 示例。说明问题属于缺失结果、可选字段、导出视图还是 API 集成。分享日志或输入样例前，先删除密钥和个人信息。

#### 相关搜索

BBC 新闻采集 · BBC 标题抓取 · BBC 世界新闻 · 英国新闻导出 · 商业新闻 API · 科技新闻数据集 · 公开新闻元数据 · 新闻监测自动化 · 标题数据收集 · 文章链接提取 · BBC CSV 导出 · BBC Excel 导出 · BBC JSON 数据 · 结构化标题 · 新闻版块快照 · 编辑研究工具 · 标题版本监测 · 新闻发现工作流 · 定时新闻采集 · 公开文章标识 · BBC 摘要提取 · 无需 BBC API 密钥 · 无需登录新闻工具 · 按标题计费 · Apify 新闻 Actor · AI 简报输入 · 新闻数据导出 · 版块标题监测

#### 免责声明

本工具独立运营，不是 BBC 官方产品，与 BBC 不存在隶属或背书关系。BBC 名称、标识及文章内容属于各自权利人。请在适用法律和条款范围内仅采集公开数据。再发布前应考虑著作权及数据库权利；公开可访问不意味着可无限制再利用。将标题数据与个人信息结合时，应遵守 GDPR、CCPA 等适用隐私规则。本文不构成法律、财务或编辑建议。

#### 资源

- [Apify API 文档](https://docs.apify.com/api/v2)
- [数据集与导出](https://docs.apify.com/platform/storage/dataset)
- [计划任务](https://docs.apify.com/platform/schedules)
- [集成目录](https://apify.com/integrations)
- [MCP](https://docs.apify.com/platform/integrations/mcp)
- [myagizm 其他工具](https://apify.com/myagizm)

# Actor input Schema

## `query` (type: `string`):

Use one of the verified BBC sections: world, uk, business, or technology.

## `maxItems` (type: `integer`):

Maximum number of unique article headlines to return from the selected section.

## `timeoutSeconds` (type: `integer`):

Maximum wait for the single section request.

## Actor input object example

```json
{
  "query": "world",
  "maxItems": 20,
  "timeoutSeconds": 20
}
```

# Actor output Schema

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

BBC article headline metadata.

## `fullJson` (type: `string`):

All returned headline fields.

# 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 = {
    "query": "world",
    "maxItems": 20,
    "timeoutSeconds": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("myagizm/bbc-news-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 = {
    "query": "world",
    "maxItems": 20,
    "timeoutSeconds": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("myagizm/bbc-news-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 '{
  "query": "world",
  "maxItems": 20,
  "timeoutSeconds": 20
}' |
apify call myagizm/bbc-news-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,myagizm/bbc-news-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/k36XyAAfdrMcX6s9U/builds/JW0xuyjKJ6Pc9kY0A/openapi.json
