github NaiboWang/EasySpider v0.6.5
Version 0.6.5

3 hours ago

如果下载速度慢,可以考虑中国境内下载地址:中国境内下载地址

Windows版本只支持64位的Windows 10/Windows Server 2016及以上系统。

The Windows version only supports Windows 10/Windows Server 2016 and above with 64-bit.

MacOS版本压缩包请用系统自带的归档使用工具解压,MacOS版本支持所有芯片组,包括Apple自研芯片(如M1,M2)和Intel芯片(如酷睿i7),注意下载对应版本的程序,且操作系统最低版本要求为11.1,更低操作系统版本请下载v0.2.0版本Mac版使用,或自行下载代码并编译,示例编译方式看这个issue

For the MacOS version, please use the system's inbuilt software Archive Utility to unzip the .7z file. The MacOS version supports all chipsets, including Apple's self-developed chips (such as M1, M2) and Intel chips (such as Core i7). Ensure you download the correct version of the program, and note that the minimum required version for the operating system is 11.1. For lower operating system versions, please download the code and compile it yourself. An example compilation method can be found in this issue.

同理,Linux版只适用于Ubuntu 20.04及以上版本、Deepin、Debian及其衍生版本,如想使用其他Linux发行版采集数据,请自行下载代码并编译,如CentOS系统编译示例看这个issue

Similarly, the Linux version is only suitable for Ubuntu 20.04 and above, Deepin, Debian, and their derivatives. If you want to collect data using other Linux distributions, please download the code and compile it yourself. For an example of compiling on CentOS, see this issue.

请划到本节最下方以下载EasySpider。

Please scroll down to the bottom of this section to download EasySpider.

更新说明

  1. 改进截图执行

    • 截图文件统一保存到任务目录下的 screenshots 子目录。
    • 在无头模式下,截图前会根据页面实际滚动宽度和高度自动调整浏览器窗口大小,以支持完整页面截图。
  2. 改进 macOS 首次运行和打包流程

    • 增加首次运行时用于清理应用隔离属性(Quarantine Attribute)的辅助脚本。
    • 暂存脚本改为复制完整的执行阶段 Python 源文件,减少 macOS 首次启动失败及发布包缺失文件的问题。
  3. 修复任务列表 URL 显示问题

    • 任务列表现在优先显示 links 中的第一条地址,而不再优先使用可能为空或已过期的顶层 url 字段。
  4. 修复跨窗口查找元素失败后的状态恢复

    • 当跨窗口查找元素失败时,自动切回查找前的原始窗口句柄,避免后续操作错误停留在其他标签页。
  5. 修正执行器循环调用参数名

    • 将内部循环路径参数 clickPath 更名为 loopPath,避免循环路径与点击路径参数混淆。
  6. 修复追加输出模式

    • 执行器在追加模式下改为使用 WriteMode.Append,不再错误地按照新建模式初始化输出文件。
  7. 升级 Electron 服务端依赖

    • multer 升级至 2.0.0
    • 同步更新依赖锁文件。
  8. 改进 macOS 浏览器和执行器打包

    • 支持从本机 Chrome 应用读取主版本号,并自动匹配对应的 ChromeDriver。
    • OCR / ONNX 文件改为从当前 Python 环境动态定位。
    • 调整内置 Chrome 权限处理流程,使其可以重新清理并完成打包。
    • macOS 应用增加临时签名(ad-hoc signing)支持。
  9. 修复流程图右键菜单

    • 右键选择流程节点时,不再误触发元素焦点切换或浏览器操作。
    • 页面滚动后,右键菜单改为使用页面坐标定位,避免菜单显示在错误位置。
  10. 增加本地远程执行控制 API

    • 支持通过 API 创建执行实例。
    • 支持传入任务参数。
    • 支持启动一个或多个执行实例。
    • 支持查询运行状态。
    • 支持读取执行日志。
    • 支持发送停止信号。
    • 执行阶段新增基于随机端口和密钥校验的本地 IPC 停止服务。
  11. 修复 Linux 和 Docker 执行路径

    • Linux 打包执行器现在能够识别 Electron 的 resources 目录布局,并使用相对路径定位运行资源。
    • Docker 远程驱动模式下清理本地 Chrome 二进制文件及扩展相关配置,避免因本地文件不存在而导致执行失败。
  12. 兼容 Chrome 137 及以上版本的扩展加载

    • 启动 Chrome 时关闭会阻止命令行加载扩展的相关特性,恢复自动化扩展加载能力。
  13. 改用 Selenium WebDriver BiDi WebExtension API 安装扩展

    • EasySpider 主扩展改为通过 Selenium WebDriver BiDi 的 WebExtension API 安装解压后的扩展目录。
    • 替代旧的命令行 CRX 注入方式。
  14. 加强安全性

    • ChromeDriver 更新器使用带超时设置的 HTTP 请求下载文件。
    • 改用系统 API 结束进程,避免通过 Shell 命令进行进程管理。
    • 本地服务仅绑定回环地址,并限制允许的跨域来源。
    • Field["字段"] 在 Python / JavaScript 表达式中的替换增加字面量转义,降低代码注入风险。
  15. 修复 Excel 导入任务参数时的表头显示问题

    • 修复循环文本参数被重复显示为 inputText_1 的问题。
    • 循环文本参数现在正确显示为 loopText_1

Update Notes

  1. Improved screenshot execution

    • Screenshot files are now consistently stored in the screenshots subdirectory under each task directory.
    • In headless mode, the browser window is automatically resized according to the actual scroll width and height of the page before taking a screenshot, allowing full-page screenshots to be captured.
  2. Improved first-run behavior and packaging on macOS

    • Added a helper script to remove macOS quarantine attributes during the first launch.
    • The staging script now copies the complete Python source files required by the execution stage, reducing first-launch failures and missing-file issues in packaged macOS builds.
  3. Fixed URL display in the task list

    • The task list now prioritizes the first URL in links instead of the top-level url field, which may be empty or outdated.
  4. Fixed window-state recovery after cross-window element lookup failures

    • When an element cannot be found during a cross-window search, the executor now switches back to the original window handle.
    • This prevents subsequent operations from incorrectly continuing in another browser tab or window.
  5. Renamed the executor loop-path parameter

    • The internal clickPath parameter used for loop execution has been renamed to loopPath.
    • This avoids confusion between loop paths and click paths.
  6. Fixed append output mode

    • The executor now uses WriteMode.Append when running in append mode.
    • Output files are no longer incorrectly initialized using the new-file mode.
  7. Updated Electron server dependency

    • Upgraded multer to 2.0.0.
    • Updated the corresponding lock file.
  8. Improved browser and executor packaging on macOS

    • The build process can now read the major version of the locally installed Chrome application and match the appropriate ChromeDriver.
    • OCR / ONNX files are now dynamically located from the active Python environment.
    • Permissions for the bundled Chrome installation can now be reset before repackaging.
    • Added ad-hoc signing support for macOS applications.
  9. Fixed the flowchart context menu

    • Right-clicking a flow node no longer unintentionally triggers element focus or browser operations.
    • After scrolling the page, the context menu now uses page coordinates for positioning, preventing it from appearing at an incorrect location.
  10. Added a local remote-execution control API

    • Added API support for creating execution instances.
    • Added support for passing task parameters.
    • Added support for starting one or multiple execution instances.
    • Added support for querying execution status.
    • Added support for reading execution logs.
    • Added support for sending stop signals.
    • The execution stage now provides a local IPC stop service protected by a randomly assigned port and secret-key validation.
  11. Fixed Linux and Docker execution paths

    • Packaged Linux executors can now recognize Electron's resources directory layout and resolve runtime files using relative paths.
    • In Docker remote-driver mode, local Chrome binary and extension configurations are removed to prevent missing-file errors.
  12. Added compatibility with extension loading in Chrome 137+

    • Chrome is now launched with the relevant feature disabled when it would otherwise prevent command-line extension loading.
    • This restores automated extension loading on Chrome 137 and later versions.
  13. Switched to Selenium WebDriver BiDi WebExtension API

    • The unpacked EasySpider main extension is now installed using Selenium WebDriver BiDi's WebExtension API.
    • This replaces the previous command-line CRX injection mechanism.
  14. Security improvements

    • The ChromeDriver updater now downloads files using HTTP requests with explicit timeouts.
    • Process termination now uses system APIs instead of shell commands.
    • Local services are bound only to loopback interfaces and restrict allowed cross-origin requests.
    • Replacements of Field["field"] expressions in Python / JavaScript now apply literal escaping to reduce code-injection risks.
  15. Fixed duplicated headers when importing task parameters from Excel

    • Fixed an issue where loop text parameters were incorrectly displayed as inputText_1.
    • Loop text parameters are now correctly displayed as loopText_1.

Don't miss a new EasySpider release

NewReleases is sending notifications on new releases.