diff options
Diffstat (limited to '_log/bumblebee.md')
| -rw-r--r-- | _log/bumblebee.md | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/_log/bumblebee.md b/_log/bumblebee.md index 21a9a07..bbe0490 100644 --- a/_log/bumblebee.md +++ b/_log/bumblebee.md @@ -1,16 +1,16 @@ --- -title: Built a browser session script synthesizer +title: Built a browser automation script synthesizer date: 2025-04-02 layout: post project: true thumbnail: thumb_sm.png --- -One year at trading firm. Webscraper is giving too many problems. CPUs are +One year at the trading firm. Webscrapers are causing problems. CPUs are saturated, servers are stalling. -2025-02: Built Bumblebee, a C# WinForms application, to record browser sessions -and automate the synthesis of scripts. +2025-02: Built a C# WinForms application to record browser sessions and +automate the synthesis of scripts. <video style="max-width:100%; margin-bottom: 10px" controls="" poster="poster.png"> <source src="bee.mp4" type="video/mp4"> @@ -20,8 +20,7 @@ Hosted WebView2 (Edge) in the WinForms application to render web content. Intercepted events by injecting JS hooks to web pages (client-side events) and listening to WebView events (internal browser events). Converted intercepted -events to Selenium code by sending through if-else statements. Crude—no time -for something better. +events to Selenium code by sending through if-else blocks. Implemented a basic optimizer to squash event sequences into single commands (e.g., calendar clicks → text input), use heuristics to improve DOM addressing @@ -30,11 +29,11 @@ Implemented a basic optimizer to squash event sequences into single commands Integrated Scintilla.NET editor to allow user more control over the generated script. -Events and code are stored in two linear lists. Mid-session manual edits desync -the lists, block the optimizer. ASTs are overkill for now. As a workaround, -only edit scripts at the end of recording. +Events and code are stored in two linear lists. Without ASTs, mid-session +manual edits desync the lists, block the optimizer. As a workaround, only edit +scripts at the end of recording. -2025-03: Shipped the first iteration and began work on key optimization: bypass +2025-03: Shipped the first iteration. Began work on a key optimization: bypass the browser, grab data files directly when possible. 2025-04: Abandoned project. Left the firm. |
