Skip to content

Commit 26d2354

Browse files
committed
Merge
1 parent 3b4d16b commit 26d2354

File tree

1 file changed

+19
-56
lines changed

1 file changed

+19
-56
lines changed

migrations/scrapybara.mdx

Lines changed: 19 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@ title: "Scrapybara"
44

55
[Scrapybara](https://scrapybara.com/) is shutting down their virtual desktop and browser service on **October 15, 2025**. If you're currently using Scrapybara for browser automation, Kernel is here to help you migrate seamlessly.
66

7-
This guide shows you how to migrate your Scrapybara browser automation code to Kernel with minimal changes to your existing workflow.
8-
9-
---
10-
117
## Key Concepts
128

139
| Feature | Scrapybara | Kernel |
@@ -20,13 +16,11 @@ This guide shows you how to migrate your Scrapybara browser automation code to K
2016
| **Replays** | ❌ Not available | `client.browsers.replays.*` |
2117
| **Save Auth** | `instance.browser.save_auth(name)` | Create profile with `save_changes: true` |
2218

23-
---
19+
## How to migrate
2420

25-
## Migration Examples
21+
### Basic Browser Creation
2622

27-
### 1. Basic Browser Creation & CDP Connection
28-
29-
#### Scrapybara
23+
**Scrapybara**
3024
```python
3125
from scrapybara import Scrapybara
3226
from playwright.async_api import async_playwright
@@ -45,7 +39,7 @@ async with async_playwright() as p:
4539
instance.browser.stop()
4640
```
4741

48-
#### Kernel
42+
**Kernel**
4943
```python
5044
from kernel import Kernel
5145
from playwright.async_api import async_playwright
@@ -63,11 +57,9 @@ async with async_playwright() as p:
6357
await client.browsers.delete_by_id(kernel_browser.session_id)
6458
```
6559

66-
---
67-
68-
### 2. Save & Reuse Authentication
60+
### Save & Reuse Authentication
6961

70-
#### Scrapybara
62+
**Scrapybara**
7163
```python
7264
# First session - save auth
7365
instance = client.start_browser()
@@ -83,7 +75,7 @@ instance2.browser.authenticate(auth_state.auth_state_id)
8375
# ... browser now has saved cookies ...
8476
```
8577

86-
#### Kernel
78+
**Kernel**
8779
```python
8880
# First session - save auth
8981
profile = await client.profiles.create(name="my-login")
@@ -100,38 +92,17 @@ browser2 = await client.browsers.create(
10092
# ... browser now has saved cookies ...
10193
```
10294

103-
---
104-
105-
### 3. Stealth Mode & Anti-Detection
106-
107-
#### Scrapybara
108-
```python
109-
# No built-in stealth mode
110-
instance = client.start_browser()
111-
# Must handle anti-detection manually or use external tools
112-
```
113-
114-
#### Kernel
115-
```python
116-
# Built-in stealth mode with CAPTCHA solving
117-
browser = await client.browsers.create(
118-
stealth=True # Enables proxy + auto CAPTCHA solver
119-
)
120-
```
121-
122-
---
123-
124-
### 4. File Download
95+
### File Download
12596

126-
#### Scrapybara
97+
**Scrapybara**
12798
```python
12899
instance = client.start_browser()
129100
# ... trigger download in browser ...
130101
# Then use file operations
131102
downloaded_file = instance.file(action="read", path="/download/path")
132103
```
133104

134-
#### Kernel
105+
**Kernel**
135106
```python
136107
browser = await client.browsers.create()
137108
# ... trigger download in browser via Playwright ...
@@ -143,11 +114,9 @@ file_response = await client.browsers.fs.read_file(
143114
await file_response.write_to_file("local-file.pdf")
144115
```
145116

146-
---
147-
148-
### 5. Long-Running Sessions
117+
### Long-Running Sessions
149118

150-
#### Scrapybara
119+
**Scrapybara**
151120
```python
152121
# Pause/resume for long-running sessions
153122
instance = client.start_browser(timeout_hours=24)
@@ -157,7 +126,7 @@ instance.pause() # Pause to save costs
157126
instance.resume() # Resume work
158127
```
159128

160-
#### Kernel
129+
**Kernel**
161130
```python
162131
# Automatic standby mode + persistence
163132
browser = await client.browsers.create(
@@ -174,9 +143,6 @@ browser2 = await client.browsers.create(
174143
# Browser state fully restored (DOM, cookies, zoom, etc.)
175144
```
176145

177-
---
178-
179-
---
180146

181147
## Full API Comparison
182148

@@ -190,25 +156,22 @@ browser2 = await client.browsers.create(
190156
| **Save Auth State** | `instance.browser.save_auth(name)` | Create profile with `save_changes: true` |
191157
| **Load Auth State** | `instance.browser.authenticate(auth_state_id)` | `client.browsers.create({ profile: { name } })` |
192158
| **Pause/Resume** | `instance.pause()` / `instance.resume()` | Automatic standby mode |
193-
| **Screenshot** | `instance.screenshot()` | Use Playwright after CDP connection |
159+
| **Screenshot** | `instance.screenshot()` | Use Playwright or Puppeteer |
194160
| **Timeout Config** | `timeout_hours` parameter | `timeout_seconds` parameter |
195161
| **Stealth Mode** | ❌ Not available | `stealth: true` parameter |
196-
| **Headless Mode** | Not explicitly documented | `headless: true` parameter |
162+
| **Headless Mode** | Not available | `headless: true` parameter |
197163
| **Session Persistence** | Auth state only | Full state via `persistence: { id }` |
198164
| **Video Replays** | ❌ Not available | `client.browsers.replays.*` |
199165
| **File Upload** | `instance.upload()` | `client.browsers.fs.upload()` or Playwright |
200166
| **File Download** | Via browser, then `instance.file()` | `client.browsers.fs.readFile()` |
201167
| **Process Control** | `instance.bash()` | `client.browsers.process.*` |
202-
| **Proxy Support** | Not documented | `proxy_id` parameter + `client.proxies.*` |
168+
| **Proxy Support** | Not available | `proxy_id` parameter + `client.proxies.*` |
203169

204170
---
205171

206172
## Need Help?
207173

208-
* **Documentation**: [docs.onkernel.com](https://www.onkernel.com/docs/introduction)
209-
* **Dashboard**: [dashboard.onkernel.com](https://dashboard.onkernel.com)
210-
* **Quick Templates**: `npx @onkernel/create-kernel-app`
211-
212-
---
174+
* **Contact Us** on [Discord](https://discord.gg/FBrveQRcud)
175+
* **Sign-Up** [here](https://dashboard.onkernel.com/sign-up)
176+
* **Check out** our open source repos [here](https://github.com/onkernel/kernel-images)
213177

214-
*Welcome to Kernel! We're excited to help you build crazy fast, reliable browser automations.*

0 commit comments

Comments
 (0)