How zhongchongan/easyspider works
EasySpider is a visual, no-code browser automation and web data collection product, with both desktop and command-line execution modes. The documented user journey is to select page elements, configure extraction or interaction steps, and execute the resulting task. The graph includes the desktop, browser-extension design surface, execution runtime, and its browser-driver layer. Some subsystem relationships are based on README descriptions; unsampled task-editor and server internals are shown without asserting unverified call paths.
Main entry points: easyspider_executestage.py Task runner · __init__.py Chrome driver · main.js Page selection UI · myChrome.py Browser adapter
Components 28
Desktop application
- Desktop interface
ElectronJS/src/index.js - Desktop controller
ElectronJS/main.js - Desktop service
ElectronJS/server.js
Visual task design
- Task flow editor
ElectronJS/src/taskGrid/FlowChart.js - Page selection UI
Extension/manifest_v3/src/content-scripts/main.js - Element selection
Extension/manifest_v3/src/content-scripts/global.js - Selection toolkit
Extension/manifest_v3/src/content-scripts/toolkit.vue - Iframe support
Extension/manifest_v3/src/content-scripts/iframe.vue - Message interaction
Extension/manifest_v3/src/content-scripts/messageInteraction.js - Page trail
Extension/manifest_v3/src/content-scripts/trail.js
Task execution
- Task runner
ExecuteStage/easyspider_executestage.py - Single-task runner
ExecuteStage/easyspider_executestage_single.py - Execution utilities
ExecuteStage/utils.py - Custom code
ExecuteStage/myCode.py - Task configuration
ExecuteStage
Browser automation
- Browser adapter
ExecuteStage/myChrome.py - Chrome driver
ExecuteStage/undetected_chromedriver_ES/__init__.py - Driver options
ExecuteStage/undetected_chromedriver_ES/options.py - Driver patching
ExecuteStage/undetected_chromedriver_ES/patcher.py - Driver process
ExecuteStage/undetected_chromedriver_ES/dprocess.py - DevTools protocol
ExecuteStage/undetected_chromedriver_ES/cdp.py - Event reactor
ExecuteStage/undetected_chromedriver_ES/reactor.py - Web elements
ExecuteStage/undetected_chromedriver_ES/webelement.py
Other components
- Task designer
- Chrome browser
- Target website
- Collected output
- Remote task service
Connections 28
- Task designer → Desktop interface: starts design
- Desktop interface → Desktop controller: requests design
ElectronJS/src/index.js - Task designer → Task flow editor: configures task
- Task designer → Page selection UI: selects elements
- Page selection UI → Element selection: uses selection
Extension/manifest_v3/src/content-scripts/main.js - Page selection UI → Selection toolkit: renders toolkit
Extension/manifest_v3/src/content-scripts/main.js - Page selection UI → Iframe support: renders iframe view
Extension/manifest_v3/src/content-scripts/main.js - Selection toolkit → Element selection: generates parameters
Extension/manifest_v3/src/content-scripts/toolkit.vue - Selection toolkit → Message interaction: uses messaging
Extension/manifest_v3/src/content-scripts/toolkit.vue - Page trail → Element selection: uses page state
Extension/manifest_v3/src/content-scripts/trail.js - Desktop controller → Desktop service: configures service
- Task designer → Task runner: runs task
- Task runner → Execution utilities: imports utilities
ExecuteStage/easyspider_executestage.py - Task runner → Browser adapter: uses browser
ExecuteStage/easyspider_executestage.py - Task runner → Task configuration: loads task config
ExecuteStage/easyspider_executestage.py - Task runner → Remote task service: queries task
ExecuteStage/easyspider_executestage.py - Single-task runner → Browser adapter: uses browser
- Task runner → Custom code: invokes custom code
- Browser adapter → Chrome driver: uses driver
ExecuteStage/myChrome.py - Chrome driver → Driver options: configures options
ExecuteStage/undetected_chromedriver_ES/__init__.py - Chrome driver → Driver patching: patches driver
ExecuteStage/undetected_chromedriver_ES/__init__.py - Chrome driver → Driver process: manages process
ExecuteStage/undetected_chromedriver_ES/__init__.py - Chrome driver → Event reactor: dispatches events
ExecuteStage/undetected_chromedriver_ES/__init__.py - Chrome driver → DevTools protocol: uses DevTools
ExecuteStage/undetected_chromedriver_ES/__init__.py - Chrome driver → Web elements: provides elements
ExecuteStage/undetected_chromedriver_ES/__init__.py - Browser adapter → Chrome browser: controls browser
- Chrome browser → Target website: interacts with page
- Task runner → Collected output: collects results