结合LangChain实现网页数据爬取

news2024/11/16 15:54:11

LangChain 非常强大的一点就是封装了非常多强大的工具可以直接使用。降低了使用者的学习成本。比如数据网页爬取

在其官方文档-网页爬取中,也有非常好的示例。

应用场景

  • 信息爬取。

  • RAG 信息检索。

实践应用

需求说明
  • 从 ceshiren 网站中获取每个帖子的名称以及其对应的url信息。

  • ceshiren论坛地址:https://ceshiren.com/

实现思路

图片

对应源码
# 定义大模型from langchain_openai import ChatOpenAIllm = ChatOpenAI(temperature=0, model="gpt-3.5-turbo-0613")
# 定义提取方法def extract(content: str, schema: dict):    from langchain.chains import create_extraction_chain    return create_extraction_chain(schema=schema, llm=llm).invoke(content)
import pprintfrom langchain_text_splitters import RecursiveCharacterTextSplitterdef scrape_with_playwright(urls, schema):    # 加载数据    loader = AsyncChromiumLoader(urls)    docs = loader.load()    # 数据转换    bs_transformer = BeautifulSoupTransformer()    # 提取其中的span标签    docs_transformed = bs_transformer.transform_documents(        docs, tags_to_extract=["span"]    )    # 数据切分    splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder(    chunk_size=1000, chunk_overlap=0)    splits = splitter.split_documents(docs_transformed)    # 因为数据量太大,输入第一片数据使用,传入使用的架构    extracted_content = extract(schema=schema, content=splits[0].page_content)    pprint.pprint(extracted_content)    return extracted_content
urls = ["https://ceshiren.com/"]schema = {    "properties": {        "title": {"type": "string"},        "url": {"type": "string"},    },    "required": ["title", "url"],}extracted_content = scrape_with_playwright(urls, schema=schema)

总结

  1. 了解网页爬取的实现思路以及相关技术。

  2. 通过LangChain实现爬取测试人网页的标题和url。

推荐学习

人工智能测试开发训练营为大家提供全方位的人工智能测试知识和技能培训行业专家授课,实战驱动,并提供人工智能答疑福利内容包含ChatGPT与私有大语言模型的多种应用,人工智能应用开发框架 LangChain,视觉与图像识别自动化测试,人工智能产品质量保障与测试,知识图谱与模型驱动测试,深度学习应用带你一站式掌握人工智能测试开发必备核心技能,快速提升核心竞争力!

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1967002.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Grafana Loki 架构组件详解

在本指南中,我们将详细了解Grafana Loki架构及其组件。 在公司的分布式环境中,存储和管理来自各种系统资源的日志是一项具有挑战性的任务。为了简化这项任务,引入了一个称为日志聚合的概念,它从各种系统资源中收集、存储、管理日…

(3)基于巴法云+MQTT+微信小程序控制esp8266点灯

1、配置微信公众平台 在 微信公众平台 注册 小程序 账号,拿到小程序 appid,登录到微信公众平台后在 开发者ID 里面可以看到,长的大概是这样:wx34a2063de5yyc04b,下面导入项目的时候会用到。 然后在 服务器域名 的后面…

微信小程序_对接声网_视频会议

目录 一、开通声网账号 1.注册账号 2.新建项目 3.开启小程序服务 二、对接声网小程序 1.前提条件 2.跑通API示例项目 3.合并两个项目 三、嵌入声网web网页 1.准备html页面 2.web-view组件 开发的微信小程序项目里面有多人会议,对接声网,有两种…

洛谷 P1548 [NOIP1997 普及组] 棋盘问题 题解

题目背景 NOIP1997 普及组第一题 题目描述 设有一个NM 方格的棋盘 (1≤N≤100,1≤M≤100) 求出该棋盘中包含有多少个正方形、多少个长方形(不包括正方形)。 例如:当 N2,M3时: 正方形的个数有 8 个:即边长为 1 的正…

(附源码)Springboot 书店销售管理-计算机毕设 42172

Springboot 书店销售管理 目 录 摘要 1 绪论 1.1 研究意义 1.2选题背景 1.3springboot框架介绍 2 书店销售管理系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析…

PCB电路板散热的技巧

对于电子设备来说,工作时都会产生一定的热量,从而使设备内部温度迅速上升,如果不及时将该热量散发出去,设备就会持续的升温,器件就会因过热而失效,电子设备的可靠性能就会下降。 因此,对电路板…

独立站转化率优化移动端篇丨出海笔记操盘手面对面精华

关于独立站转化率优化,其实有专业的术语叫做CRO——conversion rate optimize。其实这是个很大很大的话题。里面其实包括站站外和站内的两部分,站外不用多说了比如就是广告,或者是其他的流量渠道等等,站内优化是我们今天要讲的重点…

springboot高校科研成果管理系统-计算机毕业设计源码48574

摘要 随着科研规模和复杂度的增加,管理科研成果、经费申请等方面变得愈发困难,需要系统化的管理工具进行支持。并且科研活动产生的数据量庞大,也越来越来越多的成果涌现,需要有效的数据管理系统来对高校科研成果进行处理、审核和发…

记录|如何统一管理多个同一个对象?

目录 前言一、对象就用对象数组管理更新时间 前言 自己的感想 一开始,自己没弄懂C# winform中的testBox是什么,导致创建多个testBox的时候要用很笨的方法来进行管理。 就是下面这种:用数组一个一个掉用里面的单独属性。 string[] str new …

操作系统之Linux相关 内存管理、虚拟内存、设计特点、网络编程模型

Linux 文章目录 LinuxLinux 内存管理Linux 虚拟内存概述虚拟地址与物理地址的映射内存分页分页的优势虚拟地址到物理地址的映射机制分级页表的缺陷段页式内存管理 Linux 信号Linux 设计特点I/O 多路复用五种 I/O 模型详解Linux 网络编程模型软链接和硬链接对比中断和异常用户态…

8G内存的Mac够用吗 ?苹果电脑内存满了怎么清理?可以有效地管理和优化你的Mac电脑内存,确保设备运行流畅

嘿,朋友们,让咱们聊聊怎么让我们的Mac小伙伴时刻保持巅峰状态吧!想象一下,每一次点击、每一次滑动,都如同初见时那般丝滑顺畅,是不是超级心动?为了这份持久的畅快体验,我强烈推荐大家…

提升教学效率,智慧校园班主任管理的下课堂功能助力

在智慧校园学工系统中,班主任管理课堂的关键在于利用系统提供的工具高效执行点名与秩序维护。班主任可以借助系统快速进行点名,自动匹配班级学生名单,简化整个流程。系统支持多样化的点名方式,包括传统手动点名、二维码签到&#…

6-2 图像卷积

互相关运算 严格来说,卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算(cross-correlation),而不是卷积运算。 根据 6-1节中的描述,在卷积层中,输入张量和核张量通过互相关运算产生输…

On Stacking a Persistent Memory File System on Legacy File Systems——论文泛读

FAST 2023 Paper 分布式元数据论文阅读笔记整理 问题 非易失性主存储器(NVMM)具有与DRAM类似的低访问延迟和字节可寻址性,同时实现数据的非易失性。但存在以下缺点:(1)延迟高于DRAM,&#xff…

PVE虚拟机被锁定:VM is locked解决方法

🌟🌌 欢迎来到知识与创意的殿堂 — 远见阁小民的世界!🚀 🌟🧭 在这里,我们一起探索技术的奥秘,一起在知识的海洋中遨游。 🌟🧭 在这里,每个错误都…

前端面试宝典【设计模式】【1】

欢迎来到《前端面试宝典》,这里是你通往互联网大厂的专属通道,专为渴望在前端领域大放异彩的你量身定制。通过本专栏的学习,无论是一线大厂还是初创企业的面试,都能自信满满地展现你的实力。 核心特色: 独家实战案例:每一期专栏都将深入剖析真实的前端面试案例,从基础知…

某RED书旋转验证码标注工具

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 本文的验证码网址如下,使用base64解码获得 最近,某书的旋转验证码又更新了,在我之前的文章有讲过利用梯度幅度计算图像边缘…

Apache 的POI居然还能操作PPT,快来试试看

上次我们讲的用POI操作excel。Java操作Excel(Apache Poi详解) 那么java怎么操作ppt呢,其实poi也提供了操作ppt的sdk,现在我们来直接用Apache的poi操作ppt 首先我们要知道的是PPT有两种,一种格式是PPT,一种格式是PPTX,P…

Seata的使用

Seata Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。 术语 TC(Transaction Coordinator) -事务协调者(相当于服务端) 维护全局和分支事务的状态,驱动全局事务提交或回滚 TM(Transaction …

使用Python实现Excel文件首页截图工具

日常工作中,尤其是处理大量Excel文件时,可能需要对文件的首页进行截图保存,以便于后续的快速查看或报告编写。今天,我将分享一个用Python编写的Excel文件首页截图工具。这个工具将帮助我们自动化地对选定的Excel文件进行首页截图&…