当前位置: 首页 > article >正文

基于ChatGPT等大模型快速爬虫提取网页内容

        本文将介绍一种基于ChatGPT等大模型快速爬虫提取网页内容的方法。传统的爬虫方法需要花费较大精力分析页面的html元素,而这种方法只需要两步就可以完成。下面将从使用步骤、方法扩展和示例程序三部分进行介绍。RdFast智能创作机器人小程序预计本周2023-11-30之前集成该功能,实现智能编辑功能。大家可以体验一下。

1 使用步骤

        第一步:提取网页中的全部文本内容

        为了获取网页中的全部文本内容,我们使用了requests、html2text和urllib.request这三个库。首先尝试使用requests库获取网页的文本内容,如果失败则使用urllib.request库。获取到文本内容后,我们再使用html2text库将其转换成纯文本格式。最后对文本进行简单处理,去除空格和换行符。

        第二步:使用ChatGPT等大模型进行文本提取

        我们使用了OpenAI的ChatGPT等大模型来进行文本提取。将提取出来的文本内容和自定义提取规则作为ChatGPT的prompt输入,然后获取提取结果。这种方法的好处是不需要像传统爬虫方法一样,花费较大精力分析页面的html元素。

        这种方法可以大大减少爬虫的时间和精力,提高了效率。对于需要频繁进行网页内容提取的场景,这种方法非常实用。

2 方法扩展

        这种基于ChatGPT等大模型的快速爬虫提取网页内容的方法可以进一步扩展,以支持处理更多的提取规则和丰富的内容类型。具体扩展包括但不限于以下几个方面:

        (1)提取标题和摘要:除了提取全部文本内容外,可以扩展ChatGPT模型,使其能够识别并提取网页的标题和摘要信息。通过对标题和摘要进行提取和分析,可以更直观地获取网页的核心信息,帮助用户快速了解页面内容。

        (2)处理HTML规则:在文本提取过程中,可以借助ChatGPT模型对HTML标签和元素进行识别和处理。例如,识别和提取特定HTML标签内的内容,或者处理包含特定类别或ID属性的HTML元素。这样可以更精确地提取出用户感兴趣的内容部分,而不是仅仅提取整个页面的文本。

        (3)自动正则表达式生成:可以考虑让ChatGPT模型学习如何生成适用于当前网页的正则表达式。通过对已提取文本内容的分析,模型可以学习生成适用于当前网页结构的正则表达式规则,从而实现自动化的正则表达式生成和应用。

        (4)多模态内容提取:除了文本内容外,现代网页通常还包含图片、视频等多媒体内容。可以扩展ChatGPT模型,使其能够处理多模态内容提取,例如识别网页中的主要图片或视频,并提取相关的描述性信息。

        (5)自定义提取规则学习:通过引入强化学习或迁移学习技术,可以让ChatGPT模型学习用户的自定义提取规则,并根据用户反馈不断优化提取效果。这样可以实现个性化的网页内容提取,满足用户特定需求。

        通过以上扩展,基于ChatGPT等大模型的快速爬虫提取网页内容的方法可以更加灵活和智能,能够处理更多类型的内容和提取规则,从而满足不同用户和应用场景的需求。

3 示例程序和效果

代码示例:

# 基于ChatGPT等大模型快速爬虫提取网页内容
# 主要分为两步:
# 第一步:提取网页中的全部文本内容
# 第二步:将提取结果与自定义提取规则作为ChatGPT的prompt,输入给ChatGPT,获取提取结果
# 这种方法的好处是不需要像传统爬虫方法一样,花费较大精力分析页面的html元素。


import openai
import requests
import html2text
import urllib.request

# ChatGPT等大模型结果反馈结果,可以自行补充
def gpt_reply(prompt):
  return response

# 根据链接网址获取网页文本内容
def get_linktext(url):
    flag = False
    html_content = ''
    try:
        response = requests.get(url)
        html_content = response.text
    except:pass
    if len(html_content) < 1:
        try:
            response = urllib.request.urlopen(url)
            html_content = response.read().decode('utf-8')
        except:pass
    try:
        if len(html_content) > 0:
            html_content = html2text.html2text(html_content)
    except:pass
    html_content = html_content.strip()
    if len(html_content) > 0:
        flag = True
    return flag, html_content

if __name__ == '__main__':
    url = 'https://mp.weixin.qq.com/s/5OUbElScuVQfvj_9Y4JfyA'
    flag, text = get_linktext(url)
    prompt = text + '\n\n' + '请提取文章标题。'
    response = gpt_reply(prompt)
    print('处理结果如下:')
    print(response)

        以上介绍的基于ChatGPT等大模型的快速爬虫提取网页内容的方法展现了一种新颖且高效的方式,可以大大减少传统爬虫方法中对html元素分析的繁琐工作,提高爬虫效率和灵活性。该方法还具有很强的扩展性,可以通过引入更多的提取规则和处理多媒体内容来满足不同的用户需求。

        希望本文能够为读者带来启发,并对未来的研究和实践有所帮助。


http://www.kler.cn/a/154351.html

相关文章:

  • 基于YOLOv8深度学习的智慧课堂学生专注度检测系统(PyQt5界面+数据集+训练代码)
  • 无人机动力系统测试-实测数据与CFD模拟仿真数据关联对比分析
  • 【.NET 8 实战--孢子记账--从单体到微服务】--简易权限--完善TODO标记的代码
  • 如何让手机ip变成动态
  • VSCode插件
  • Spring中的Bean
  • 口袋参谋:仅用两招,100%解决店铺没流量、没点击!
  • web前端开发规范、HTML规范、JavaScript规范、style规范
  • 重生奇迹MU再生原石
  • 【Linux】-信号-(信号的产生,保存,处理,以及os是怎么读取硬件的输入,硬件异常和coredump,定时器的原理简单的用户态和内核态的详细介绍)
  • 5、Qt:项目中包含多个子项目(.pro)/子模块(.pri)
  • macbook电脑运行缓慢和卡顿内存怎么清理了?
  • 外包搞了6年,技术退步明显......
  • 【数值计算方法(黄明游)】矩阵特征值与特征向量的计算(五):Householder方法【理论到程序】
  • form表单封装button封装的两种方式
  • Centos查看运行内存大小
  • linux shell编程
  • ardupilot开发 --- 机载计算机 篇
  • Java基础(第九期):Java中的集合 ArrayList 集合的增删改查 Java实现学生信息管理系统
  • 一、服务器准备
  • 使用coco数据集进行语义分割(1):数据预处理,制作ground truth
  • 【大数据】区分 hdfs dfs -ls 与 hdfs dfs -ls /
  • 动静分离策略
  • 【C语言】与文件有关的操作
  • flutter的TextField参数、案例整理(下)
  • 图像异常检测研究现状综述