首页 > 其他分享 >结合LangChain实现网页数据爬取

结合LangChain实现网页数据爬取

时间:2024-07-18 11:20:50浏览次数:14  
标签:content 网页 docs LangChain 爬取 import schema

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

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

应用场景

  • 信息爬取。
  • RAG 信息检索。

实践应用

需求说明

  • 从 ceshiren 网站中获取每个帖子的名称以及其对应的url信息。
  • ceshiren论坛地址:https://ceshiren.com/

实现思路

对应源码


# 定义大模型
from langchain_openai import ChatOpenAI
llm = 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 pprint
from langchain_text_splitters import RecursiveCharacterTextSplitter
def 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。

标签:content,网页,docs,LangChain,爬取,import,schema
From: https://www.cnblogs.com/hogwarts/p/18309127

相关文章

  • LangChain补充二:LCEL和Runnable更加方便的创建调用链
    https://www.alang.ai/langchain/101/lc05一:LCEL入门LangChain的设计围绕着让AI应用开发者能够方便地将多个流程连缀成一个AI应用的业务逻辑,包括Chain与Agent。每个流程都被封装成一个runnable(langchain_core.runnables),包括提示语模板、模型调用、输出解析器、工具......
  • LangChain补充一:一些小且有用的点
    一:LangChain表达式语言LCEL(LangChainExpressionLanguage)chain:我们可以将包括大模型调用在内的一组操作组成“链条”,即所谓“调用链”(一)概念LangChain提供的LangChainExpressionLanguage(LCEL)让开发可以很方便地将多个组件连接成AI工作流(或者说是调用链)。如下是一......
  • LangChain补充五:Agent之LangGraph的使用
    一:LangGraph入门https://www.51cto.com/article/781996.htmlhttps://blog.csdn.net/weixin_41496173/article/details/139023846https://blog.csdn.net/wjjc1017/article/details/138518087https://langchain-ai.github.io/langgraph/https://langchain-ai.github.io/langg......
  • LangChain补充四:Agent知识点和案例补充
    https://www.alang.ai/langchain/101/lc07一:基本流程和概念(一)概念LangChainAgent的核心思想是,使用大语言模型选择一系列要执行的动作。在Chain中,一系列动作是硬编码在代码中的。在Agent中,大语言模型被用作推理引擎,以确定要采取的动作及其顺序。它包括3个组件:规划:将任......
  • 折腾指南: 将光猫改造成你的NAS,WebDAV+网页文件管理器vList5+natmap
    原文:https://hi.imzlh.top/2024/07/18.cgi(预发布)很久没有写完全折腾类文章了,这还得追溯到上次折腾S905L3A那会。这篇文章很长,但是是小白级包学会。为什么会有这篇文章?这篇文章本来应该在4个月前就完成了,但是我一直都在折腾NAS软件其中我也尝试了很多方法,奈何时间不足断断续......
  • LangChain让LLM带上记忆
    最近两年,我们见识了“百模大战”,领略到了大型语言模型(LLM)的风采,但它们也存在一个显著的缺陷:没有记忆。在对话中,无法记住上下文的LLM常常会让用户感到困扰。本文探讨如何利用LangChain,快速为LLM添加记忆能力,提升对话体验。LangChain是LLM应用开发领域的最大社区和......
  • Web网页端IM产品RainbowChat-Web的v7.1版已发布
    一、关于RainbowChat-WebRainbowChat-Web是一套Web网页端IM系统,是RainbowChat的姊妹系统(RainbowChat是一套基于开源IM聊天框架 MobileIMSDK (Github地址) 的产品级移动端IM系统)。► 详细介绍:http://www.52im.net/thread-2483-1-1.html► 版本记录:http://www.52im.net/th......
  • 新版网页无插件H.265播放器EasyPlayer.js如何测试demo视频?
    H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,支持H.264与H.265编码格式,性能稳定、播放流畅;支持WebSocket-FLV、HTTP-FLV,HLS(m3u8)、WebRTC、WS-FMP4、HTTP-FMP4等格式的视频流,并且已实现网页端实时录像、在iOS上实现低延时......
  • 使用Python和Selenium爬取京东商品数据
    简介❤❤码农不是吗喽(大学生版)-CSDN博客在本文中,我们将探讨如何使用Python编程语言结合Selenium库来爬取京东网站上的商品数据。Selenium是一个强大的工具,可以模拟真实用户对网页的交互操作,非常适合进行网页自动化测试和数据抓取。一、环境准备......
  • 把LangChain跑起来的3个方法
    使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来的方法,如有错误欢迎纠正。Langchain官方文档地址:https://python.langchain.com/基......