使用browser-use进行数据爬取实战记录
前面的文章介绍了browser-use的基本使用,今天带来的分享是使用browser-use进行一次数据爬取的实战(不过还是demo级别的)。
使用到的三个玩法分别是使用自己的浏览器、定义输出结构与注册一个行为。
实践
使用自己的浏览器
首先解决使用自己的浏览器。
代码:
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。
查看效果:
准确获取到了我们想要的数据。
定义自定义输出
其次,我们来定义自定义输出。
代码:
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())
效果:
使用到了自己定义的数据结构。
注册一个行为
比如我想把结果保存到一个文件中。
代码:
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()
效果:
最后
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器