网页抓取工具

lilFetch是一款基于Playwright和Chromium的网页抓取工具,支持HTML和文本抓取,适用于市场研究总结、文件创建等场景。

  • by jphdevsf
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 jphdevsf/lilfetch-mcp

使用说明

lilFetch

一个MCP(模型上下文协议)服务器,使用 crawl4ai Playwright提供更强大的抓取功能。在VSCode中的CoPilot上进行了测试,但可能适用于其他人。

特性

  • 直接在聊天提示中启用一个或多个url的html和/或文本抓取。在后续查询中使用抓取的响应进行市场研究总结、创建新文件的上下文等。
  • 利用Playwright和Chromium的无头实例加载JS繁重的网站和web应用程序 #fetch 和 curl 命令不到位。
  • 强烈关注安装和抓取所需的最小命令和配置。

先决条件

安装前,确保:

  • Node.js 14+:从下载 nodejs.org 或通过Homebrew(brew install node 在macOS上)。
  • Python 3.10+:在设置过程中自动检测到。从以下位置安装 python.org 或自制(brew install python@3.12 在macOS上)。如果使用pyenv,请将3.10+版本设置为活动状态(pyenv global 3.12.0).
  • 首次运行时间:安装程序下载约200MB(Playwright浏览器),需要1-2分钟。

安装

全局安装以跨工作区使用,或者如果您只想在此仓库中测试或进一步增强,则限制为本地安装。

选项1:全局安装

用于跑步 npx lilfetch 从任何目录(便携式CLI)。

  1. 克隆Repo

    git clone https://github.com/jphdevsf/lilfetch-mcp.git lilfetch-mcp
    cd lilfetch-mcp
    
  2. 全球安装

    npm run global-install
    
    • 在中设置Python venv ~/.lilfetch-venv (用户范围)。
  3. 在任何VS代码工作区中配置(添加到 .vscode/mcp.json 或全局MCP设置):

    {
      "servers": {
        "lilFetch": {
          "type": "stdio",
          "command": "npx",
          "args": ["lilfetch"]
        }
      }
    }
    
  4. 测试IT

    • 在新的终端窗口中,运行 npx lilfetch 启动MCP服务器。
    • 在VS Code中,用类似的东西提示。..
    Use lilFetch to scrape top news headlines from www.cnn.com and write to a markdown file in root of my repo.
    

选项2:本地安装

用于在仓库中进行测试/扩展。

  1. 克隆Repo

    git clone https://github.com/jphdevsf/lilfetch-mcp.git lilfetch-mcp
    cd lilfetch-mcp
    
  2. 本地安装

    npm install
    
    • 设置 ./node_modules/lilfetch/ 和 .bin/lilfetch.
    • Python仓库中的venv .venv (本项目本地)。
  3. MCP.json工作区配置 引导到 .vscode/mcp.json (如果缺少,则创建)并添加:

    {
      "servers": {
        "lilFetch": {
          "type": "stdio",
          "command": "node",
          "args": ["bin/lilfetch.js"]
        }
      }
    }
    

    注: 确保 bin/lilfetch.js 可执行:运行 chmod +x bin/lilfetch.js 在终端。

  4. 测试IT

    • 在新的终端窗口中,导航到此仓库并运行 npm run dev 或 ./node_modules/.bin/lilfetch.
    • 在VS Code中,用类似的东西提示。..
    Use lilFetch to scrape top news headlines from www.cnn.com and write to a markdown file in root of my repo.
    

卸载

要完全删除全局安装(包括npm包和Python虚拟环境):

全局卸载

从repo目录(或任何地方):

npm run global-uninstall
  • 这运行 npm uninstall -g lilfetch 删除全局npm包和二进制文件。
  • 紧随其后 rm -rf ~/.lilfetch-venv 删除用户范围的Python venv(包括已安装的deps和Playwright浏览器)。
  • 警告:The rm -rf 命令是不可逆的。它只会影响 .lilfetch-venv 主文件夹中的目录。必要时备份(不太可能)。

手动卸载(替代)

  1. 删除npm包:
    npm uninstall -g lilfetch
    
  2. 删除Python venv:
    rm -rf ~/.lilfetch-venv
    
    • 在Windows上: rmdir /s /q %USERPROFILE%\.lilfetch-venv

本地卸载

对于本地安装(例如,在 npm install):

npm uninstall
rm -rf .venv
  • 这将删除本地Node模块和特定于仓库的Python venv。

验证

  • npm list -g --depth=0 (没有 lilfetch).
  • which lilfetch (空)。
  • ls ~/.lilfetch-venv (没有这样的文件)。

对于本地: rm -rf node_modules .venv 并验证否 ./.bin/lilfetch.

发展

  • 编辑 mcp_server.py Python逻辑。
  • 更新 bin/lilfetch.js 用于包装更改。
  • 凹凸版本 package.json那么 npm run pack.
  • 对于全球测试: npm install -g . 然后 npx lilfetch.

故障排除

  • 权限错误(全局安装):请参阅用户拥有的NPM设置的先决条件。避免使用sudo——使用配置步骤。
  • 找不到Python/版本错误:确保Python 3.8+在PATH中。对于pyenv: pyenv install 3.12.0 && pyenv global 3.12.0,然后重新运行安装。检查: python3 --version.
  • Venv/Deps失败:对于本地:删除 .venv 并重新运行 npm install.对于全局:删除 ~/.lilfetch-venv 并重新运行 npm install -g ..手动修复(本地): python3 -m venv .venv && .venv/bin/pip install -r requirements.txt && .venv/bin/python -m playwright install.手动修复(全局): python3 -m venv ~/.lilfetch-venv && ~/.lilfetch-venv/bin/pip install -r requirements.txt && ~/.lilfetch-venv/bin/python -m playwright install.
  • 剧作家浏览器丢失:运行 python -m playwright install 在venv中(或手动记录)。
  • VS代码中未检测到MCP:配置后重新启动VS代码;确保工作区正确打开。
  • 卸载:
    • 全球的: npm uninstall -g lilfetch + rm -rf ~/.lilfetch-venv.
    • 当地: rm -rf node_modules package-lock.json .venv.

8 • • • • •

许可证:麻省理工学院