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

部署运行你感兴趣的模型镜像

前言

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

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

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)

async def 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

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

定义自定义输出

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

代码:

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)

async def 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

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

注册一个行为

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

代码:

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)

async def 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-20250221112909092

最后

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

您可能感兴趣的与本文相关的镜像

Qwen3-8B

Qwen3-8B

文本生成
Qwen3

Qwen3 是 Qwen 系列中的最新一代大型语言模型,提供了一整套密集型和专家混合(MoE)模型。基于广泛的训练,Qwen3 在推理、指令执行、代理能力和多语言支持方面取得了突破性进展

### 关于 Browser-Use 的核心功能 Browser-Use 是一种用于实现浏览器自动化的工具,其主要目标是帮助开发者和研究人员通过编程方式与网页交互[^1]。它能够模拟人类操作浏览器的行为,例如点击按钮、填写表单以及抓取页面数据。 #### 创建虚拟环境并安装 Browser-Use 为了使用 Browser-Use,建议先设置一个独立的 Python 虚拟环境以隔离依赖项。以下是具体的安装方法: ```bash # 创建虚拟环境 (推荐使用 uv 工具) uv create venv .venv # 激活虚拟环境 source .venv/bin/activate # Linux/MacOS .\venv\Scripts\activate # Windows # 安装 Browser-Use 及其依赖项 pip install browser-use ``` 上述命令会完成虚拟环境的初始化,并安装必要的软件包以便运行 Browser-Use[^3]。 #### 浏览器自动化的核心能力 Browser-Use 提供的功能涵盖了多种常见的浏览器操作需求。这些功能包括但不限于: - **导航到指定 URL**: 用户可以轻松加载任何网页。 - **元素定位与操作**: 支持查找 HTML 元素并通过脚本执行点击或输入文本等动作。 - **等待机制**: 自动化过程中可能涉及动态内容加载,因此提供显式或隐式的等待策略。 - **截图捕获**: 对整个页面或者特定区域进行图像保存。 - **Cookie 和存储管理**: 处理登录状态保持等问题非常有用。 对于更直观的操作界面体验,还可以考虑利用 WebUI 版本来简化配置流程[^2]。 #### 示例代码展示基本用法 下面给出一段简单的 Python 程序演示如何启动 Chrome 并访问某个网站: ```python from browser_use import Browser with Browser(browser_name="chrome") as b: b.go_to("http://example.com") title = b.get_title() print(f"The page title is {title}.") ``` 此片段展示了打开链接后获取当前文档标题的过程。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值