使用browser-use进行数据爬取实战记录


前言

前面的文章介绍了browser-use的基本使用,今天带来的分享是使用browser-use进行一次数据爬取的实战(不过还是demo级别的)。

使用到的三个玩法分别是使用自己的浏览器、定义输出结构与注册一个行为。

image-20250221111035743
image-20250221111035743


实践


使用自己的浏览器

首先解决使用自己的浏览器。

代码:

from langchain_openai import ChatOpenAI
from browser_use import Agent
from browser_use.browser.browser import Browser, BrowserConfig
from dotenv import load_dotenv
import os
load_dotenv()

import asyncio

api_key = os.getenv('Silicon_Cloud_API_KEY')
base_url = os.getenv('Base_URL')
model = os.getenv('Model')

browser = Browser(
 config=BrowserConfig(
# NOTE: you need to close your chrome browser - so that this can open your browser in debug mode
# d:\Learning\AI-related\browser-use-demo\.env注意:您需要关闭您的Chrome浏览器,以便此操作可以在调试模式下打开您的浏览器
  chrome_instance_path=r'C:\Program Files\Google\Chrome\Application\chrome.exe',
 )
)

llm = ChatOpenAI(model=model, api_key=api_key, base_url=base_url)

asyncdef main():
    agent = Agent(
        task="获取https://cloud.siliconflow.cn/bills的账单信息",
        llm=llm,
        browser=browser,
        use_vision=False,
    )
    result = await agent.run()
    print(result)

asyncio.run(main())

将chrome_instance_path替换为你自己的浏览器路径。

为什么要使用自己的浏览器呢?

有一个好处就是你登录过的保存信息的网站就可以直接登录不用验证了。

就比如我想查看我硅基流动的账单一样,如果不用自己的浏览器还要进行登录操作,用自己的浏览器如果保存信息了就不用再登了。

模型我选择的是:Qwen/Qwen2.5-72B-Instruct。

查看效果:

image-20250221111729867
image-20250221111729867

准确获取到了我们想要的数据。


定义自定义输出

其次,我们来定义自定义输出。

代码:

from langchain_openai import ChatOpenAI
from browser_use import Agent
from browser_use.browser.browser import Browser, BrowserConfig
from dotenv import load_dotenv
import os
from pydantic import BaseModel
import asyncio
from typing import List
from browser_use import ActionResult, Agent, Controller

load_dotenv()

api_key = os.getenv('Silicon_Cloud_API_KEY')
base_url = os.getenv('Base_URL')
model = os.getenv('Model')

browser = Browser(
 config=BrowserConfig(
# NOTE: you need to close your chrome browser - so that this can open your browser in debug mode
# d:\Learning\AI-related\browser-use-demo\.env注意:您需要关闭您的Chrome浏览器,以便此操作可以在调试模式下打开您的浏览器
  chrome_instance_path=r'C:\Program Files\Google\Chrome\Application\chrome.exe',
 )
)

class Bill(BaseModel):
 account_period: str
 total_consumption : float

controller = Controller(output_model=Bill)

llm = ChatOpenAI(model=model, api_key=api_key, base_url=base_url)

asyncdef main():
    agent = Agent(
        task="""
        获取https://cloud.siliconflow.cn/bills的账单信息。     
        """,
        llm=llm,
  controller=controller,
        browser=browser,
        use_vision=False,
    )

    result = await agent.run()
    print(result)

asyncio.run(main())

效果:

image-20250221112232196
image-20250221112232196

使用到了自己定义的数据结构。


注册一个行为

比如我想把结果保存到一个文件中。

代码:

from langchain_openai import ChatOpenAI
from browser_use import Agent, Controller
from browser_use.browser.browser import Browser, BrowserConfig
from browser_use.agent.views import ActionResult
from dotenv import load_dotenv
import os
load_dotenv()

import asyncio

api_key = os.getenv('Silicon_Cloud_API_KEY')
base_url = os.getenv('Base_URL')
model = os.getenv('Model')

browser = Browser(
 config=BrowserConfig(
# NOTE: you need to close your chrome browser - so that this can open your browser in debug mode
# d:\Learning\AI-related\browser-use-demo\.env注意:您需要关闭您的Chrome浏览器,以便此操作可以在调试模式下打开您的浏览器
  chrome_instance_path=r'C:\Program Files\Google\Chrome\Application\chrome.exe',
 )
)

controller = Controller()
@controller.registry.action('保存结果到指定文件')
def save_to_file(text: str,file_path: str):
with open(file_path, 'w') as f:
  f.write(text)
return ActionResult(extracted_content=text)

llm = ChatOpenAI(model=model, api_key=api_key, base_url=base_url)

asyncdef main():
    agent = Agent(
        task="获取https://cloud.siliconflow.cn/bills的账单信息,并将结果保存到test3.txt。",
        llm=llm,
  controller=controller,
        browser=browser,
        use_vision=False,
    )
    result = await agent.run()
    print(result)

asyncio.run(main())

效果:

image-20250221112725673
image-20250221112725673
image-20250221112909092
image-20250221112909092


最后

以上就是使用browser-use进行一次数据爬取的实战记录,更多玩法可由读者自行探索。

### 如何部署 Browser Use 相关的应用或服务 为了成功部署 Browser Use 应用,需遵循一系列配置步骤来确保环境准备就绪并能稳定运行该应用程序。 #### 准备工作 确保本地计算机已安装 Node.js 和 npm (Node Package Manager),因为 Browser Use 构建于 JavaScript 生态系统之上,并依赖这些工具来进行包管理和构建过程[^2]。 #### 获取源码 从官方仓库克隆 Browser Use 项目到本地机器。这通常通过 Git 完成: ```bash git clone https://github.com/path-to-browser-use-repo.git cd path-to-browser-use-repo ``` #### 安装依赖项 进入项目的根目录后,执行命令以下载所需的库文件和其他资源: ```bash npm install ``` #### 配置环境变量 依据具体需求设置必要的环境参数。某些情况下可能涉及 API 密钥或其他敏感信息,应妥善保管并通过 `.env` 文件或者其他安全的方式提供给程序使用。 #### 启动应用 一旦所有准备工作都已完成,则可以尝试启动 Browser Use 应用了。对于大多数基于 Node.js 的 Web 应用来说,可以通过如下方式开启服务器实例: ```bash node app.js 或者 npx nodemon 如果有nodemon的话 ``` 如果希望利用更强大的功能集,如多标签页管理、视觉识别以及内容提取等特性,还需要额外引入相应的模块和服务支持。 #### 使用 Browser Sync 实现实时预览 为了让开发者能够更加高效地调试前端页面,在开发阶段推荐启用 Browser Sync 来实现自动刷新机制。按照以下指令操作即可轻松集成这一实用插件: ```bash browser-sync start --proxy "http://localhost:8080/showcase" --files "src/main/webapp/**/*" ``` 这条命令会监听 `src/main/webapp/` 下的所有变动,并将请求转发至指定地址上的 Jetty 服务器,从而达到同步更新的效果[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值