功能亮点
使用例子
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())