华夏有一极恶之兽,二足二手,顶生白发。擅唱,跳,rap。练二年又余,便呼全民者好,乃拋衣,得球起舞。起舞之时,多作赞美家禽之言,大呼:鸡甚美!往返反复。叫声凄凄然,其吊带一松,便上下窜动,令人生畏

  • stagehand 有体验过的吗 at August 13, 2025

    我帮你试了下,直接安装就可以用了,就是这个模型好像只能用国外的

    1. 安装
    pip install stagehand
    python -m playwright install  #playWright相关依赖
    pip install python-dotenv
    

    2.设置环境变量,项目文件夹里创建.env 文件

    # 前面这两个配置呢,是如果你要用云端Browserbase调试,就配置
    export BROWSERBASE_API_KEY="your_browserbase_api_key"
    export BROWSERBASE_PROJECT_ID="your_browserbase_project_id"
    
    # 这个是你要用的大模型密钥
    export MODEL_API_KEY="your_model_api_key"  # OpenAI, Anthropic, etc.
    

    3.本地创建文件,如 demo.py

    import asyncio
    import os
    from stagehand import Stagehand, StagehandConfig
    from dotenv import load_dotenv
    
    #读取.env配置文件
    load_dotenv()
    
    async def main():
        config = StagehandConfig(
            env="LOCAL",    #你这里想要用本地浏览器就local,如果是云的就用"BROWSERBASE"
    
           # 这两个配置是云端调试时使用,如果是本地就可以注释掉了
            api_key=os.getenv("BROWSERBASE_API_KEY"),       
            project_id=os.getenv("BROWSERBASE_PROJECT_ID"),
    
           #填写你要用的模型,密钥在.env文件配置
            model_name="gpt-4o",
            model_api_key=os.getenv("MODEL_API_KEY")
    
          # 这里你可以做这些配置
                 headless=True,   #打开调试窗口
                 verbose=3,
                 debug_dom=True
        )
    
        stagehand = Stagehand(config)
    
        try:
            await stagehand.init()
            page = stagehand.page
    
            await page.goto("填写你要跳转的网页地址")
            await page.act("自然语言写明你要的操作")
    
            result = await page.extract("extract the main heading of the page")
    
            print(f"Extracted: {result}")
    
        finally:
            await stagehand.close()
    
    if __name__ == "__main__":
        asyncio.run(main())
    
    

    4 运行 python demo.py 即可

    5 相关流程顺序:

    1. 页面导航page.goto(url)
    2. 页面观察observe()
    3. 页面执行操作act()
    4. 页面数据提取extract()
    
    eg:
    # 1. 使用 observe() 找到元素
    search_box = await page.observe("找到页面顶部的搜索框")
    
    # 2. 使用 act() 执行操作
    await page.act("在搜索框中输入'人工智能发展'并按下回车键")
    
    # 3. 等待页面加载完成
    await page.wait_for_load_state("networkidle")
    
    # 4. 使用 extract() 提取数据
    introduction = await page.extract("提取关于deepseek的全部文章链接")
    

    6 核心方法
    observe() 方法用于分析当前页面,根据自然语言指令识别和定位特定的页面元素。它不会执行任何操作,只是返回关于找到元素的信息。

    # 查找页面上的登录按钮
    login_button = await page.observe("找到登录按钮")
    
    # 查找特定的文章链接
    article_link = await page.observe("找到关于AI的最新文章链接")
    
    # 查找搜索框
    search_box = await page.observe("找到页面顶部的搜索输入框")
    
    

    act() 方法用于在页面上执行具体的操作,如点击、输入文本、导航等。它接受自然语言指令并将其转换为具体的浏览器操作。

    # 点击按钮
    await page.act("点击登录按钮")
    
    # 输入文本
    await page.act("在搜索框中输入'人工智能'")
    
    # 导航操作
    await page.act("点击第一篇文章链接")
    
    # 复合操作
    await page.act("填写用户名为'user123',密码为'password123',然后点击登录")
    

    extract() 方法用于从页面中提取信息。如果不指定特定的数据格式,它可以返回自然语言描述的内容。

    # 直接用自然语言提取信息
    content = await page.extract("提取页面的主要内容")
    print(content)
    
    # 提取特定信息
    title = await page.extract("提取文章标题")
    author = await page.extract("提取作者姓名")
    summary = await page.extract("提取文章摘要")
    

    就这个模型我用 deepseek 整不了,只能用 gpt 的,貌似没有兼容

  • Author only
  • 老哥也是大起大落过,特别是这个【2015 年生过一场大病】
    据我认识的人来说,生过大病的人都会看事情看的很透,对生活看得很开

  • 为何你的发言,总让我感觉到一股浓浓的【阿里味】???

  • 小孩子不懂事,测着玩的

  • 好的

  • 多拜神,祈求来贵人

  • 就像一楼说的

    1. 设立主流程冒烟用例
    2. 不符合就需要公告到相关领导

    规则和流程其实不需要写太多,实际情况复杂多变,类似你设立的【基础质量不达标】这个,事实上你发现超 45 个 bug 了,那实际工作量就已经做了,不管是打回还是修复后重新验证,工作量都差不多。

    而且需要认清一个现实是,项目打回并不是换开发,
    现实就是你依然得和这个开发一起磨合,打回几次都改变不了上线日期,
    类似 2 楼那些阿里味的条条框框(术语堆砌、宏大叙事、强调体系文化、落地路径模糊、内部视角浓厚)看看就行了,短期解决不了任何问题,长期也是需要大量的资源投入

    对广大中小型公司、创业公司或处于快速迭代、生存压力下的团队来说,这套东西会水土不服

  • whoa! You're right!👍

  • 现在很多公众号和培训机构,打着 AI 的名义,玩得还是接口自动化培训那套
    小心这些人,不要被 pua 进培训,这年头经济下行,不要相信任何人过往的光辉,
    很多应届生还真的相信别人是为他/她好,
    傻傻的几千几百就去扔水里了

    职业发展需要运气,态度是要认真向上,但结果真的是随缘

华夏有一极恶之兽,二足二手,顶生白发。擅唱,跳,rap。练二年又余,便呼全民者好,乃拋衣,得球起舞。起舞之时,多作赞美家禽之言,大呼:鸡甚美!往返反复。叫声凄凄然,其吊带一松,便上下窜动,令人生畏