返回AI专栏

Browser Use

让 AI 代理可以访问网站。轻松实现在线任务自动化。

5.0
开源
#AI

功能亮点

使用例子

1、安装最新版本 browser-use

pip install -U browser-use

2、编写以下 main.py 文件

import asyncio
from browser_use import Agent, ChatOpenAI

async def main():
    agent = Agent(
        task="""
        请执行以下任务:
        1、访问网站 https://upass.10jqka.com.cn/login,等待 40 秒,让我先登录。
        2. 登录完成后,在同一页面访问网站:https://q.10jqka.com.cn/。
        3. 找到页面下方的'个股行情'列表和分页控件
        4. 进行翻页操作:
           - 先滚动到页面底部找到分页控件区域
           - 查找当前页码:寻找带有class="cur"的<a>标签,它的page属性值就是当前页码
           - 例如:<a class="cur" page="31" href="javascript:void(0)">31</a> 表示当前在第31页
           - 每次翻页前先检查当前页码,如果已经到达第20页就停止
           - 通过文本搜索找到"下一页"按钮,使用click_text功能点击
           - 每次点击"下一页"按钮后,等待3秒,然后立即检查当前页码是否已更新
           - 如果页码未更新,再等待2秒并重新检查,最多重试3次
           - 一旦确认页码已更新,立即进行下一步操作,无需额外等待
           - 页面会发送AJAX请求获取新数据,DOM会发生变化
           - 每次翻页后需要重新搜索"下一页"按钮,不要使用固定的元素索引
           - 确认页面内容已更新且当前页码已改变后再进行下一次翻页
        5. 总共跳转到第20页为止
        6. 如果遇到页面加载问题,可以刷新页面重新开始翻页
        7. 翻页操作的具体步骤:
           - 使用click_text("下一页")点击下一页按钮
           - 等待3秒让页面加载
           - 检查当前页码是否更新(查找class="cur"的元素)
           - 如果页码未更新,等待2秒后重试,最多重试3次
           - 如果连续3次重试都失败,尝试刷新页面重新开始
        
        注意事项:
        - 每次翻页都要等待页面完全加载完成
        - 重新查找分页按钮,不要依赖之前的元素索引
        - 必须检查当前页码:寻找class="cur"的元素来确定当前页码
        - 当前页码显示格式:<a class="cur" page="页码" href="javascript:void(0)">页码</a>
        - 如果当前页码已经是20或更大,立即停止翻页操作
        - 如果连续失败3次,尝试滚动页面找到分页控件
        - 优先使用click_text功能点击"下一页"按钮,这样更稳定可靠
        - 如果click_text失败,再尝试使用click_element_by_index作为备选方案
        - 每次翻页后都要验证页码是否正确递增
        """,
        llm=ChatOpenAI(
            model="openai/gpt-4o-mini",
            api_key="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",
            base_url="https://openrouter.ai/api/v1" 
        )
    )
    result = await agent.run()
    print(result)

if __name__ == "__main__":
    asyncio.run(main())