Skip to content

Commit bbd0d21

Browse files
vdusekclaude
andauthored
docs: Fix typos, broken links, and add frontmatter descriptions (#850)
## Summary - Fix multiple typos across doc pages: missing spaces after commas, "automatiacally" → "automatically", "connectionthrough" → "connection through", "To make you Actor" → "To make your Actor" - Fix broken README guide links (outdated slugs) and a code bug (`actor_input['url']` → `request.url`) - Remove `ty: ignore` comments from doc code examples by using proper `WebhookEventType` enum; add `invalid-argument-type = "ignore"` override for docs in `pyproject.toml` - Add `description` frontmatter field to all 21 doc pages for SEO - Remove unused `sidebar_label` fields and unquote existing descriptions in introduction pages --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent b40ad69 commit bbd0d21

24 files changed

+39
-21
lines changed

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ async def main() -> None:
7777

7878
# Extract the desired data.
7979
data = {
80-
'url': actor_input['url'],
80+
'url': request.url,
8181
'title': soup.title.string,
8282
'h1s': [h1.text for h1 in soup.find_all('h1')],
8383
'h2s': [h2.text for h2 in soup.find_all('h2')],
@@ -165,10 +165,11 @@ To create and run Python Actors locally, check the documentation for
165165

166166
To see how you can use the Apify SDK with other popular libraries used for web scraping,
167167
check out our guides for using
168-
[Requests and HTTPX](https://docs.apify.com/sdk/python/docs/guides/requests-and-httpx),
169-
[Beautiful Soup](https://docs.apify.com/sdk/python/docs/guides/beautiful-soup),
168+
[BeautifulSoup with HTTPX](https://docs.apify.com/sdk/python/docs/guides/beautifulsoup-httpx),
169+
[Parsel with Impit](https://docs.apify.com/sdk/python/docs/guides/parsel-impit),
170170
[Playwright](https://docs.apify.com/sdk/python/docs/guides/playwright),
171171
[Selenium](https://docs.apify.com/sdk/python/docs/guides/selenium),
172+
[Crawlee](https://docs.apify.com/sdk/python/docs/guides/crawlee),
172173
or [Scrapy](https://docs.apify.com/sdk/python/docs/guides/scrapy).
173174

174175
## Usage concepts

docs/01_introduction/index.mdx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
---
22
id: introduction
33
title: Overview
4-
sidebar_label: Overview
54
slug: /overview
6-
description: 'The official library for creating Apify Actors in Python, providing tools for web scraping, automation, and data storage integration.'
5+
description: The official library for creating Apify Actors in Python, providing tools for web scraping, automation, and data storage integration.
76
---
87

98
import CodeBlock from '@theme/CodeBlock';

docs/01_introduction/quick-start.mdx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
---
22
id: quick-start
33
title: Quick start
4-
sidebar_label: Quick start
5-
description: 'Get started with the Apify SDK for Python by creating your first Actor and learning the basics.'
4+
description: Get started with the Apify SDK for Python by creating your first Actor and learning the basics.
65
---
76

87
Learn how to create and run Actors using the Apify SDK for Python.

docs/02_concepts/01_actor_lifecycle.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
id: actor-lifecycle
33
title: Actor lifecycle
4+
description: How an Apify Actor starts, runs, and shuts down, including context manager and manual control patterns.
45
---
56

67
import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock';

docs/02_concepts/02_actor_input.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
id: actor-input
33
title: Actor input
4+
description: Read and validate input data passed to your Actor at runtime.
45
---
56

67
import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock';

docs/02_concepts/03_storages.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
id: storages
33
title: Working with storages
4+
description: Use datasets, key-value stores, and request queues to persist Actor data.
45
---
56

67
import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock';

docs/02_concepts/04_actor_events.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
id: actor-events
33
title: Actor events & state persistence
4+
description: Handle platform events like state persistence and graceful shutdown in your Actors.
45
---
56

67
import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock';

docs/02_concepts/05_proxy_management.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
id: proxy-management
33
title: Proxy management
4+
description: Configure Apify Proxy or your own proxies for IP rotation and session management.
45
---
56

67
import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock';
@@ -39,7 +40,7 @@ All your proxy needs are managed by the [`ProxyConfiguration`](../../reference/c
3940

4041
### Apify proxy vs. your own proxies
4142

42-
The `ProxyConfiguration` class covers both Apify Proxy and custom proxy URLs, so that you can easily switch between proxy providers. However, some features of the class are available only to Apify Proxy users, mainly because Apify Proxy is what one would call a super-proxy. It's not a single proxy server, but an API endpoint that allows connectionthrough millions of different IP addresses. So the class essentially has two modes: Apify Proxy or Your proxy.
43+
The `ProxyConfiguration` class covers both Apify Proxy and custom proxy URLs, so that you can easily switch between proxy providers. However, some features of the class are available only to Apify Proxy users, mainly because Apify Proxy is what one would call a super-proxy. It's not a single proxy server, but an API endpoint that allows connection through millions of different IP addresses. So the class essentially has two modes: Apify Proxy or Your proxy.
4344

4445
The difference is easy to remember. Using the `proxy_url` or `new_url_function` arguments enables use of your custom proxy URLs, whereas all the other options are there to configure Apify Proxy. Visit the [Apify Proxy docs](https://docs.apify.com/proxy) for more info on how these parameters work.
4546

docs/02_concepts/06_interacting_with_other_actors.mdx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
id: interacting-with-other-actors
33
title: Interacting with other Actors
4+
description: Start, call, and metamorph other Actors from within your Actor code.
45
---
56

67
import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock';
@@ -40,9 +41,9 @@ The [`Actor.call_task`](../../reference/class/Actor#call_task) method starts an
4041

4142
The [`Actor.metamorph`](../../reference/class/Actor#metamorph) operation transforms an Actor run into a run of another Actor with a new input. This feature is useful if you want to use another Actor to finish the work of your current Actor, instead of internally starting a new Actor run and waiting for its finish. With metamorph, you can easily create new Actors on top of existing ones, and give your users nicer input structure and user interface for the final Actor. For the users of your Actors, the metamorph operation is completely transparent; they will just see your Actor got the work done.
4243

43-
Internally, the system stops the container corresponding to the original Actor run and starts a new container using a different container image. All the default storages are preserved,and the new Actor input is stored under the `INPUT-METAMORPH-1` key in the same default key-value store.
44+
Internally, the system stops the container corresponding to the original Actor run and starts a new container using a different container image. All the default storages are preserved, and the new Actor input is stored under the `INPUT-METAMORPH-1` key in the same default key-value store.
4445

45-
To make you Actor compatible with the metamorph operation, use [`Actor.get_input`](../../reference/class/Actor#get_input) instead of [`Actor.get_value('INPUT')`](../../reference/class/Actor#get_value) to read your Actor input. This method will fetch the input using the right key in a case of metamorphed run.
46+
To make your Actor compatible with the metamorph operation, use [`Actor.get_input`](../../reference/class/Actor#get_input) instead of [`Actor.get_value('INPUT')`](../../reference/class/Actor#get_value) to read your Actor input. This method will fetch the input using the right key in a case of metamorphed run.
4647

4748
For example, imagine you have an Actor that accepts a hotel URL on input, and then internally uses the [`apify/web-scraper`](https://apify.com/apify/web-scraper) public Actor to scrape all the hotel reviews. The metamorphing code would look as follows:
4849

docs/02_concepts/07_webhooks.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
id: webhooks
33
title: Creating webhooks
4+
description: Set up webhooks to trigger actions when Actor run events occur.
45
---
56

67
import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock';
@@ -14,7 +15,7 @@ You can learn more in the [documentation for webhooks](https://docs.apify.com/pl
1415

1516
## Creating an ad-hoc webhook dynamically
1617

17-
Besides creating webhooks manually in Apify Console, or through the Apify API,you can also create [ad-hoc webhooks](https://docs.apify.com/platform/integrations/webhooks/ad-hoc-webhooks) dynamically from the code of your Actor using the [`Actor.add_webhook`](../../reference/class/Actor#add_webhook) method:
18+
Besides creating webhooks manually in Apify Console, or through the Apify API, you can also create [ad-hoc webhooks](https://docs.apify.com/platform/integrations/webhooks/ad-hoc-webhooks) dynamically from the code of your Actor using the [`Actor.add_webhook`](../../reference/class/Actor#add_webhook) method:
1819

1920
<RunnableCodeBlock className="language-python" language="python">
2021
{WebhookExample}

0 commit comments

Comments
 (0)