网页爬取工具

使用Playwright MCP和LLM调用的端到端网页爬取工作流,用于提取和解析房地产列表页面的数据,并导出为Excel文件。

  • by joaopdroslv
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 joaopdroslv/playwright-mcp-testing

使用说明

使用Playwright MCP和LLM调用的端到端Webscraping工作流

此项目演示了使用Playwright MCP(通过自定义BrowserMCP包装器)和LLM调用的最小端到端工作流程,以:

  • 从房地产列表页面提取快照
  • 使用结构化LLM输出解析项目和项目详细信息
  • 捕获每个项目的屏幕截图
  • 将所有提取的数据导出到.xlsx文件中
  • 在唯一的runId目录下组织结果

该实现使用fastmcp、Playwright和OpenAI结构化输出。

项目流程

工作流程(items_workflow)遵循以下步骤:

  1. 创建一个独特的 runId 输出目录

  2. 对于每个配置的站点(ITEMS_WORKFLOW_SITES):

    • 加载初始页面
    • 提取快照
    • 检测并迭代分页
  3. 对于每个列表页面:

    • 提取快照
    • 使用LLM(PageItemsOutput)检测所有项目URL
  4. 对于每个项目:

    • 提取完整细节快照
    • 使用LLM(ItemDetailsOutput)解析结构化项目数据
    • 使用唯一ID保存屏幕截图
    • 将解析后的项目附加到结果列表中
  5. 完成所有页面后:

    • 将所有收集到的数据写入 runId 文件夹

输出示例

您可以在 example 项目根目录中的dir。

跑步会产生:

  • 数十张截图(每个提取项目一张)
  • 一个包含所有解析项目数据的Excel电子表格

如何跑步

按照以下步骤设置环境并运行示例。

  1. 配置您的 .env 文件使用 .env.example 作为参考。 请确保设置您的 OPENAI_API_KEY.

  2. 启动Playwright MCP服务:

    docker compose up --build -d playwright-mcp
    
  3. 构建工作流服务:

    docker compose build workflow
    
  4. 然后运行工作流服务(它不是持久服务):

    docker compose up workflow
    

    工作流服务生成的输出将保存在项目根目录下的output/目录中。

    Note: 由于工作流服务不是持久的,它只运行一次,并在完成工作流后退出。 要再次运行工作流,请使用:

    docker compose up workflow