unrealon 1.1.4__tar.gz → 1.1.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {unrealon-1.1.4 → unrealon-1.1.5}/PKG-INFO +71 -108
- {unrealon-1.1.4 → unrealon-1.1.5}/README.md +70 -107
- {unrealon-1.1.4 → unrealon-1.1.5}/pyproject.toml +1 -1
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon/__init__.py +1 -1
- {unrealon-1.1.4 → unrealon-1.1.5}/.gitignore +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/LICENSE +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/MANIFEST.in +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/requirements-dev.txt +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/requirements-test.txt +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/requirements.txt +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/README.md +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/__init__.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/cli/__init__.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/cli/browser_cli.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/cli/cookies_cli.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/cli/interactive_mode.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/cli/main.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/core/__init__.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/core/browser_manager.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/dto/__init__.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/dto/models/config.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/dto/models/core.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/dto/models/dataclasses.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/dto/models/detection.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/dto/models/enums.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/dto/models/statistics.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/managers/__init__.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/managers/captcha.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/managers/cookies.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/managers/logger_bridge.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/managers/profile.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_browser/managers/stealth.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/__init__.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/exceptions.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/html_analyzer/__init__.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/html_analyzer/cleaner.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/html_analyzer/config.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/html_analyzer/manager.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/html_analyzer/models.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/html_analyzer/websocket_analyzer.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/models/__init__.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/models/websocket.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/parser/__init__.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/parser/cli_manager.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/parser/daemon_manager.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/parser/managers/__init__.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/parser/managers/config.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/parser/managers/error.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/parser/managers/result.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/parser/parser_manager.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/smart_logging/__init__.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/smart_logging/models.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/smart_logging/smart_logger.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/smart_logging/unified_logger.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/websocket/__init__.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/websocket/client.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/websocket/config.py +0 -0
- {unrealon-1.1.4 → unrealon-1.1.5}/src/unrealon_driver/websocket/manager.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: unrealon
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.5
|
|
4
4
|
Summary: 🚀 Revolutionary web scraping platform with unbreakable stealth, AI-powered extraction, and zero-config setup. Build enterprise parsers in minutes, not months!
|
|
5
5
|
Project-URL: Homepage, https://github.com/unrealos/unrealon-rpc
|
|
6
6
|
Project-URL: Documentation, https://unrealon-rpc.readthedocs.io
|
|
@@ -180,122 +180,85 @@ await parser.start_daemon()
|
|
|
180
180
|
|
|
181
181
|
### 🎯 **Developer's Perspective - Simple & Clean**
|
|
182
182
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
183
|
+
**Architecture Overview - Developer's Perspective:**
|
|
184
|
+
|
|
185
|
+
- **💻 Your Parser Code (Python Script)**
|
|
186
|
+
- Simple class extending ParserManager
|
|
187
|
+
- Focus on business logic only
|
|
188
|
+
- Example: `async def parse_products(url): return await self.extract_with_ai(url)`
|
|
189
|
+
|
|
190
|
+
- **🚀 Built-in Browser (Playwright + Stealth)**
|
|
191
|
+
- ✅ Anti-Detection
|
|
192
|
+
- ✅ Proxy Rotation
|
|
193
|
+
- ✅ CAPTCHA Solving
|
|
194
|
+
|
|
195
|
+
- **🌐 Target Websites**
|
|
196
|
+
- 🛒 E-commerce Sites
|
|
197
|
+
- 📰 News Portals
|
|
198
|
+
- 📱 Social Media
|
|
199
|
+
- 🌍 Any Website
|
|
200
|
+
|
|
201
|
+
- **📊 UnrealOn Dashboard**
|
|
202
|
+
- 📈 Real-time Monitoring
|
|
203
|
+
- 📋 Logs & Analytics
|
|
204
|
+
- ⚙️ Task Management
|
|
205
|
+
- 💾 Data Storage
|
|
206
|
+
|
|
207
|
+
**Flow:** Your code → Built-in Browser → Target Websites
|
|
208
|
+
**Automatic Sync:** Your code ⟷ UnrealOn Dashboard (metrics, logs, parsed data)
|
|
202
209
|
|
|
203
210
|
### 🔄 **Two Operation Modes**
|
|
204
211
|
|
|
205
212
|
#### 🔧 **Standalone Mode** (Local Development)
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
B --> C
|
|
215
|
-
B --> D
|
|
216
|
-
|
|
217
|
-
style A fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
|
|
218
|
-
style B fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px
|
|
219
|
-
style C fill:#fff3e0,stroke:#f57c00,stroke-width:3px
|
|
220
|
-
style D fill:#e8f5e8,stroke:#388e3c,stroke-width:3px
|
|
221
|
-
```
|
|
213
|
+
**Standalone Mode Flow:**
|
|
214
|
+
|
|
215
|
+
- 💻 Your Parser (Local Python Script)
|
|
216
|
+
- 🚀 Built-in Browser with Stealth Enabled
|
|
217
|
+
- 🌐 Target Website (E-commerce/News)
|
|
218
|
+
- 💾 Local Results (JSON/CSV/Database)
|
|
219
|
+
|
|
220
|
+
**Process:** Your Parser → Browser → Target Website → Local Results
|
|
222
221
|
|
|
223
222
|
#### 🚀 **Dashboard Mode** (Production)
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
D --> E
|
|
238
|
-
D --> F
|
|
239
|
-
D --> G
|
|
240
|
-
|
|
241
|
-
style A fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
|
|
242
|
-
style B fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px
|
|
243
|
-
style C fill:#fff3e0,stroke:#f57c00,stroke-width:3px
|
|
244
|
-
style D fill:#e8f5e8,stroke:#388e3c,stroke-width:3px
|
|
245
|
-
style E fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
|
|
246
|
-
style F fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
|
|
247
|
-
style G fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
|
|
248
|
-
```
|
|
223
|
+
**Dashboard Mode Flow:**
|
|
224
|
+
|
|
225
|
+
- 💻 Your Parser (Production Script)
|
|
226
|
+
- 🚀 Built-in Browser with Enterprise Stealth
|
|
227
|
+
- 🌐 Target Website (E-commerce/News)
|
|
228
|
+
- 📊 UnrealOn Dashboard (Cloud Platform)
|
|
229
|
+
- 👥 Team Collaboration & Role Management
|
|
230
|
+
- 📈 Analytics & Business Intelligence Reports
|
|
231
|
+
- 📤 Data Export via API/Webhooks
|
|
232
|
+
|
|
233
|
+
**Process:**
|
|
234
|
+
- Parser → Browser → Target Website
|
|
235
|
+
- Parser → Dashboard → Team/Analytics/Export
|
|
249
236
|
|
|
250
237
|
### 🎯 **What You Focus On vs What UnrealOn Handles**
|
|
251
238
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
A1 -.->|"Automatically Triggers"| B1
|
|
277
|
-
A2 -.->|"Automatically Triggers"| B2
|
|
278
|
-
A2 -.->|"Automatically Triggers"| B3
|
|
279
|
-
A3 -.->|"Automatically Triggers"| B4
|
|
280
|
-
A3 -.->|"Automatically Triggers"| B5
|
|
281
|
-
A4 -.->|"Automatically Triggers"| B6
|
|
282
|
-
A4 -.->|"Automatically Triggers"| B7
|
|
283
|
-
A4 -.->|"Automatically Triggers"| B8
|
|
284
|
-
|
|
285
|
-
style A1 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
|
|
286
|
-
style A2 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
|
|
287
|
-
style A3 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
|
|
288
|
-
style A4 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
|
|
289
|
-
|
|
290
|
-
style B1 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
291
|
-
style B2 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
292
|
-
style B3 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
293
|
-
style B4 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
294
|
-
style B5 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
295
|
-
style B6 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
296
|
-
style B7 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
297
|
-
style B8 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
298
|
-
```
|
|
239
|
+
**What You Focus On vs What UnrealOn Handles:**
|
|
240
|
+
|
|
241
|
+
**🎯 Your Focus - Business Logic Only:**
|
|
242
|
+
1. 🎯 Define Target URLs
|
|
243
|
+
- Example: `urls = ['amazon.com', 'ebay.com']`
|
|
244
|
+
2. 🔍 Specify Data to Extract
|
|
245
|
+
- Example: `'Extract title, price, rating'`
|
|
246
|
+
3. 📊 Handle Results
|
|
247
|
+
- Save to database/API
|
|
248
|
+
4. ⏰ Schedule Tasks
|
|
249
|
+
- Run every hour/daily
|
|
250
|
+
|
|
251
|
+
**🚀 UnrealOn Handles All Infrastructure:**
|
|
252
|
+
1. 🌐 Browser Management (Playwright + Chrome)
|
|
253
|
+
2. 🛡️ Stealth & Anti-Detection (Fingerprint Spoofing)
|
|
254
|
+
3. 🔄 Proxy Rotation (Global IP Pool)
|
|
255
|
+
4. 🤖 CAPTCHA Solving (Automatic Resolution)
|
|
256
|
+
5. ⚠️ Error Handling (Retry Logic)
|
|
257
|
+
6. 📈 Logging & Monitoring (Real-time Metrics)
|
|
258
|
+
7. 💾 Data Storage (Cloud Database)
|
|
259
|
+
8. ⚡ Performance Optimization (Auto-scaling)
|
|
260
|
+
|
|
261
|
+
**Each of your actions automatically triggers the corresponding infrastructure components.**
|
|
299
262
|
|
|
300
263
|
**🎉 Result: You write 10 lines of business logic, UnrealOn handles 1000+ lines of infrastructure!**
|
|
301
264
|
|
|
@@ -92,122 +92,85 @@ await parser.start_daemon()
|
|
|
92
92
|
|
|
93
93
|
### 🎯 **Developer's Perspective - Simple & Clean**
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
95
|
+
**Architecture Overview - Developer's Perspective:**
|
|
96
|
+
|
|
97
|
+
- **💻 Your Parser Code (Python Script)**
|
|
98
|
+
- Simple class extending ParserManager
|
|
99
|
+
- Focus on business logic only
|
|
100
|
+
- Example: `async def parse_products(url): return await self.extract_with_ai(url)`
|
|
101
|
+
|
|
102
|
+
- **🚀 Built-in Browser (Playwright + Stealth)**
|
|
103
|
+
- ✅ Anti-Detection
|
|
104
|
+
- ✅ Proxy Rotation
|
|
105
|
+
- ✅ CAPTCHA Solving
|
|
106
|
+
|
|
107
|
+
- **🌐 Target Websites**
|
|
108
|
+
- 🛒 E-commerce Sites
|
|
109
|
+
- 📰 News Portals
|
|
110
|
+
- 📱 Social Media
|
|
111
|
+
- 🌍 Any Website
|
|
112
|
+
|
|
113
|
+
- **📊 UnrealOn Dashboard**
|
|
114
|
+
- 📈 Real-time Monitoring
|
|
115
|
+
- 📋 Logs & Analytics
|
|
116
|
+
- ⚙️ Task Management
|
|
117
|
+
- 💾 Data Storage
|
|
118
|
+
|
|
119
|
+
**Flow:** Your code → Built-in Browser → Target Websites
|
|
120
|
+
**Automatic Sync:** Your code ⟷ UnrealOn Dashboard (metrics, logs, parsed data)
|
|
114
121
|
|
|
115
122
|
### 🔄 **Two Operation Modes**
|
|
116
123
|
|
|
117
124
|
#### 🔧 **Standalone Mode** (Local Development)
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
B --> C
|
|
127
|
-
B --> D
|
|
128
|
-
|
|
129
|
-
style A fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
|
|
130
|
-
style B fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px
|
|
131
|
-
style C fill:#fff3e0,stroke:#f57c00,stroke-width:3px
|
|
132
|
-
style D fill:#e8f5e8,stroke:#388e3c,stroke-width:3px
|
|
133
|
-
```
|
|
125
|
+
**Standalone Mode Flow:**
|
|
126
|
+
|
|
127
|
+
- 💻 Your Parser (Local Python Script)
|
|
128
|
+
- 🚀 Built-in Browser with Stealth Enabled
|
|
129
|
+
- 🌐 Target Website (E-commerce/News)
|
|
130
|
+
- 💾 Local Results (JSON/CSV/Database)
|
|
131
|
+
|
|
132
|
+
**Process:** Your Parser → Browser → Target Website → Local Results
|
|
134
133
|
|
|
135
134
|
#### 🚀 **Dashboard Mode** (Production)
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
D --> E
|
|
150
|
-
D --> F
|
|
151
|
-
D --> G
|
|
152
|
-
|
|
153
|
-
style A fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
|
|
154
|
-
style B fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px
|
|
155
|
-
style C fill:#fff3e0,stroke:#f57c00,stroke-width:3px
|
|
156
|
-
style D fill:#e8f5e8,stroke:#388e3c,stroke-width:3px
|
|
157
|
-
style E fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
|
|
158
|
-
style F fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
|
|
159
|
-
style G fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
|
|
160
|
-
```
|
|
135
|
+
**Dashboard Mode Flow:**
|
|
136
|
+
|
|
137
|
+
- 💻 Your Parser (Production Script)
|
|
138
|
+
- 🚀 Built-in Browser with Enterprise Stealth
|
|
139
|
+
- 🌐 Target Website (E-commerce/News)
|
|
140
|
+
- 📊 UnrealOn Dashboard (Cloud Platform)
|
|
141
|
+
- 👥 Team Collaboration & Role Management
|
|
142
|
+
- 📈 Analytics & Business Intelligence Reports
|
|
143
|
+
- 📤 Data Export via API/Webhooks
|
|
144
|
+
|
|
145
|
+
**Process:**
|
|
146
|
+
- Parser → Browser → Target Website
|
|
147
|
+
- Parser → Dashboard → Team/Analytics/Export
|
|
161
148
|
|
|
162
149
|
### 🎯 **What You Focus On vs What UnrealOn Handles**
|
|
163
150
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
A1 -.->|"Automatically Triggers"| B1
|
|
189
|
-
A2 -.->|"Automatically Triggers"| B2
|
|
190
|
-
A2 -.->|"Automatically Triggers"| B3
|
|
191
|
-
A3 -.->|"Automatically Triggers"| B4
|
|
192
|
-
A3 -.->|"Automatically Triggers"| B5
|
|
193
|
-
A4 -.->|"Automatically Triggers"| B6
|
|
194
|
-
A4 -.->|"Automatically Triggers"| B7
|
|
195
|
-
A4 -.->|"Automatically Triggers"| B8
|
|
196
|
-
|
|
197
|
-
style A1 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
|
|
198
|
-
style A2 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
|
|
199
|
-
style A3 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
|
|
200
|
-
style A4 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
|
|
201
|
-
|
|
202
|
-
style B1 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
203
|
-
style B2 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
204
|
-
style B3 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
205
|
-
style B4 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
206
|
-
style B5 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
207
|
-
style B6 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
208
|
-
style B7 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
209
|
-
style B8 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
210
|
-
```
|
|
151
|
+
**What You Focus On vs What UnrealOn Handles:**
|
|
152
|
+
|
|
153
|
+
**🎯 Your Focus - Business Logic Only:**
|
|
154
|
+
1. 🎯 Define Target URLs
|
|
155
|
+
- Example: `urls = ['amazon.com', 'ebay.com']`
|
|
156
|
+
2. 🔍 Specify Data to Extract
|
|
157
|
+
- Example: `'Extract title, price, rating'`
|
|
158
|
+
3. 📊 Handle Results
|
|
159
|
+
- Save to database/API
|
|
160
|
+
4. ⏰ Schedule Tasks
|
|
161
|
+
- Run every hour/daily
|
|
162
|
+
|
|
163
|
+
**🚀 UnrealOn Handles All Infrastructure:**
|
|
164
|
+
1. 🌐 Browser Management (Playwright + Chrome)
|
|
165
|
+
2. 🛡️ Stealth & Anti-Detection (Fingerprint Spoofing)
|
|
166
|
+
3. 🔄 Proxy Rotation (Global IP Pool)
|
|
167
|
+
4. 🤖 CAPTCHA Solving (Automatic Resolution)
|
|
168
|
+
5. ⚠️ Error Handling (Retry Logic)
|
|
169
|
+
6. 📈 Logging & Monitoring (Real-time Metrics)
|
|
170
|
+
7. 💾 Data Storage (Cloud Database)
|
|
171
|
+
8. ⚡ Performance Optimization (Auto-scaling)
|
|
172
|
+
|
|
173
|
+
**Each of your actions automatically triggers the corresponding infrastructure components.**
|
|
211
174
|
|
|
212
175
|
**🎉 Result: You write 10 lines of business logic, UnrealOn handles 1000+ lines of infrastructure!**
|
|
213
176
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "unrealon"
|
|
7
|
-
version = "1.1.
|
|
7
|
+
version = "1.1.5"
|
|
8
8
|
description = "🚀 Revolutionary web scraping platform with unbreakable stealth, AI-powered extraction, and zero-config setup. Build enterprise parsers in minutes, not months!"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {text = "MIT"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|