结合LangChain实现网页数据爬取

简介: LangChain框架简化了数据爬取和处理,如信息检索任务。在示例中,它结合Playwright抓取ceshiren论坛页面,使用BeautifulSoup处理HTML,然后应用LangChain的提取链获取帖子标题和URL。代码中定义了提取函数,通过`ChatOpenAI`模型和特定模式抽取数据。此示例展示了LangChain如何降低复杂性,便于快速实现网页内容的自动化提取。

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

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

应用场景

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

实践应用

需求说明

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

实现思路

image.png

对应源码


# 定义大模型
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。
相关实践学习
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
7月前
|
SQL 存储 OLAP
数据外置提速革命:轻量级开源SPL如何用文件存储实现MPP级性能?
传统交易型数据库在分析计算中常遇性能瓶颈,将数据迁至OLAP数据仓库虽可缓解,但成本高、架构复杂。SPL通过轻量级列存文件存储历史数据,提供强大计算能力,大幅简化架构并提升性能。它优化了列式存储、数据压缩与多线程并行处理,在常规及复杂计算场景中均表现优异,甚至单机性能超越集群。实际案例中,SPL在250亿行数据的时空碰撞问题上,仅用6分钟完成ClickHouse集群30分钟的任务。
数据外置提速革命:轻量级开源SPL如何用文件存储实现MPP级性能?
|
10月前
|
存储 数据采集 人工智能
AllData数据中台架构全览:数据时代的智慧中枢
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
AllData数据中台架构全览:数据时代的智慧中枢
|
9月前
|
存储 SQL 监控
【亲测有用】数据中台数据服务管理能力演示
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
9月前
|
存储 消息中间件 NoSQL
【亲测有用】数据中台数据模型管理能力演示
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
机器学习/深度学习 数据可视化 数据挖掘
唤醒数据中台潜力:加速数据飞轮转动,实现数据驱动的秘籍
本文探讨了如何通过数据飞轮激活数据中台的潜力,实现数据驱动的创新。文章分析了数据中台面临的挑战,如数据孤岛和工具复杂性,并提出了建立统一数据治理架构、引入自动化数据管道和强化数据与业务融合等策略。通过实际案例和技术示例,展示了如何利用数据飞轮实现业务增长,强调了数据可视化和文化建设的重要性。旨在帮助企业充分挖掘数据价值,提升决策效率。
唤醒数据中台潜力:加速数据飞轮转动,实现数据驱动的秘籍
|
机器学习/深度学习 搜索推荐 算法
从数据中台到数据飞轮:企业升级的必然之路
在探讨是否需从数据中台升级至数据飞轮前,我们应先理解两者之间的关系。数据中台作为数据集成、清洗及治理的强大平台,是数据飞轮的基础;而要实现数据飞轮,则需进一步增强数据自动化处理与智能化利用能力。借助机器学习与人工智能技术,“转动”数据并创建反馈机制,使数据在循环中不断优化,如改进产品推荐系统,进而形成数据飞轮。此外,为了适应市场变化,企业还需提高数据基础设施的敏捷性和灵活性,这可通过采用微服务架构和云计算技术来达成,从而确保数据系统的快速扩展与调整,支持数据飞轮高效运转。综上所述,数据中台虽为基础,但全面升级至数据飞轮则需在数据自动化处理、反馈机制及系统敏捷性方面进行全面提升。
325 14
|
机器学习/深度学习 消息中间件 搜索推荐
【数据飞轮】驱动业务增长的高效引擎 —从数据仓库到数据中台的技术进化与实战
在数据驱动时代,企业逐渐从数据仓库过渡到数据中台,并进一步发展为数据飞轮。本文详细介绍了这一演进路径,涵盖数据仓库的基础存储与查询、数据中台的集成与实时决策,以及数据飞轮的自动化增长机制。通过代码示例展示如何在实际业务中运用数据技术,实现数据的最大价值,推动业务持续优化与增长。
|
机器学习/深度学习 JSON JavaScript
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
449 0
|
数据管理 数据挖掘 大数据
数据飞轮崛起:数据中台真的过时了吗?
数据飞轮崛起:数据中台真的过时了吗?
379 0
|
存储 数据管理 大数据
从数据仓库到数据中台再到数据飞轮:社交媒体的数据技术进化史
从数据仓库到数据中台再到数据飞轮:社交媒体的数据技术进化史
342 0