大模型应用— 爬虫 ScrapeGraphAI大模型爬虫—ScrapeGraphAI

大模型爬虫—ScrapeGraphAI

一、介绍

_ScrapeGraphAI是一个_网络爬虫 Python 库,使用大型语言模型和直接图逻辑为网站和本地文档(XML,HTML,JSON 等)创建爬取管道。

只需告诉库您想提取哪些信息,它将为您完成!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

scrapegraphai有三种主要的爬取管道可用于从网站(或本地文件)提取信息:

  • SmartScraperGraph: 单页爬虫,只需用户提示和输入源;
  • SearchGraph: 多页爬虫,从搜索引擎的前 n 个搜索结果中提取信息;
  • SpeechGraph: 单页爬虫,从网站提取信息并生成音频文件。
  • SmartScraperMultiGraph: 多页爬虫,给定一个提示 可以通过 API 使用不同的 LLM,如 OpenAIGroqAzureGemini,或者使用 Ollama 的本地模型。
二、准备工作
12.1 安装ollama

点击前往网站 ollama.com/ ,下载ollama软件,支持win、Mac、linux

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.2 下载LLM

ollama软件目前支持多种大模型, 如阿里的(qwen、qwen2)、meta的(llama3),

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

以llama3为例,根据自己电脑显存性能, 选择适宜的版本。如果不知道选什么,那就试着安装,不合适不能用再删除即可。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

打开电脑命令行cmd(mac是terminal), 网络是连网状态,执行模型下载(安装)命令

ollama pull llama3
ollama pull qwen2
ollama pull nomic-embed-text

等待 llama3、 nomic-embed-text 下载完成。

2.3 安装python包

在python中调用ollama服务,需要ollama包。

打开电脑命令行cmd(mac是terminal), 网络是连网状态,执行安装命令

pip3 install ollama
2.4 启动ollama服务

在Python中调用本地ollama服务,需要先启动本地ollama服务, 打开电脑命令行cmd(mac是terminal), 执行

ollama run llama3

这样就启动了ollama 服务,并且使用的是llama3的模型

或者你可以直接使用 启动服务,但是不指定模型

 ollama server



2024/06/14 14:52:24 routes.go:1011: INFO server config env="map[OLLAMA_DEBUG:false OLLAMA_FLASH_ATTENTION:false OLLAMA_HOST:http://127.0.0.1:11434 OLLAMA_KEEP_ALIVE: OLLAMA_LLM_LIBRARY: OLLAMA_MAX_LOADED_MODELS:1 OLLAMA_MAX_QUEUE:512 OLLAMA_MAX_VRAM:0 OLLAMA_MODELS:/Users/deng/.ollama/models OLLAMA_NOHISTORY:false OLLAMA_NOPRUNE:false OLLAMA_NUM_PARALLEL:1 OLLAMA_ORIGINS:[http://localhost https://localhost http://localhost:* https://localhost:* http://127.0.0.1 https://127.0.0.1 http://127.0.0.1:* https://127.0.0.1:* http://0.0.0.0 https://0.0.0.0 http://0.0.0.0:* https://0.0.0.0:* app://* file://* tauri://*] OLLAMA_RUNNERS_DIR: OLLAMA_TMPDIR:]"
time=2024-06-14T14:52:24.742+08:00 level=INFO source=images.go:725 msg="total blobs: 18"
time=2024-06-14T14:52:24.742+08:00 level=INFO source=images.go:732 msg="total unused blobs removed: 0"
time=2024-06-14T14:52:24.743+08:00 level=INFO source=routes.go:1057 msg="Listening on 127.0.0.1:11434 (version 0.1.44)"
time=2024-06-14T14:52:24.744+08:00 level=INFO source=payload.go:30 msg="extracting embedded files" dir=/var/folders/y0/4gqxky0s2t94x1c1qhlwr6100000gn/T/ollama4239159529/runners
time=2024-06-14T14:52:24.772+08:00 level=INFO source=payload.go:44 msg="Dynamic LLM libraries [metal]"
time=2024-06-14T14:52:24.796+08:00 level=INFO source=types.go:71 msg="inference compute" id=0 library=metal compute="" driver=0.0 name="" total="72.0 GiB" available="72.0 GiB"

cmd(mac是terminal)看到如上的信息,说明本地ollama服务已开启。

2.5 安装scrapegraphai及playwright

电脑命令行cmd(mac是terminal), 网络是连网状态,执行安装命令

pip install scrapegraphai

之后继续命令行cmd(mac是terminal)执行

playwright install

等待安装完成后,进行实验

三、实验
3.1 案例1

https://textdata.cn/blog/ 博客为例,假设我想获取标题、日期、文章链接,

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

代码如下:

from scrapegraphai.graphs import SmartScraperGraph
?
?
graph_config = {
    "llm": {
        "model": "ollama/llama3",
        "temperature": 0,
        "format": "json",  # Ollama 需要显式指定格式
        "base_url": "http://localhost:11434",  # 设置 Ollama URL
    },
    "embeddings": {
        "model": "ollama/nomic-embed-text",
        "base_url": "http://localhost:11434",  # 设置 Ollama URL
    },
    "verbose": True,
}
?
smart_scraper_graph = SmartScraperGraph(
    prompt="返回该网站所有文章的标题、日期、文章链接",
    # 也接受已下载的 HTML 代码的字符串
    #source=requests.get("https://textdata.cn/blog/").text,
    source="https://textdata.cn/blog/",
    config=graph_config
)
?
result = smart_scraper_graph.run()
print(result)

Run

--- Executing Fetch Node ---
--- Executing Parse Node ---
--- Executing RAG Node ---
--- (updated chunks metadata) ---
--- (tokens compressed and vector stored) ---
--- Executing GenerateAnswer Node ---
Processing chunks: 100%|█████████████████████████| 1/1 [00:00<00:00, 825.81it/s]
?
{'articles': 
    [{'title': 'LIST | 社科(经管)数据挖掘文献资料汇总', 
      'date': '2024-04-15', 
      'link': 'https://textdata.cn/blog/management_python_course/'}, 
      
      {'title': 'LIST| 文本分析代码资料汇总', 
      'date': '2024-04-15',
      'link':'https://textdata.cn/blog/text_analysis_code_list_about_ms/'}, 
      
      {'title': '实验 | 使用本地大模型从文本中提取结构化信息', 
      'date': '2024-06-14', 
      'link': 'https://textdata.cn/blog/2024-06-14-using-large-language-model-to-extract-structure-data-from-raw-text/'}, 
      
      {'title': '2023 | 文本分析在经管研究中的应用', 
      'date': '2023-11-05', 
      'link': 'https://textdata.cn/blog/2023-11-05-xjtu-text-mining-in-ms/'}, 
      
      {'title': '经管类 | 含 经济日报/经济观察报/中国工业报/中国贸易报/中国消费者报 等 10+ 家媒体(2024.05)', 
      'date': '2024-06-12', 
      'link': 'https://textdata.cn/blog/2024-06-12-national-level-economic-daily-news-dataset/'}]}

如果运行过程中报下面这个错误,那是因为下载所需依赖失败了,你需要打开vpn

    raise EnvironmentError(
OSError: Can't load tokenizer for 'gpt2'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'gpt2' is the correct path to a directory containing all relevant files for a GPT2TokenizerFast tokenizer.
3.2 案例2

采集豆瓣读书 https://book.douban.com/top250 中的 名字、作者名、评分、书籍链接 等信息。

在这里插入图片描述

from scrapegraphai.graphs import SmartScraperGraph
?
?
graph_config = {
    "llm": {
        "model": "ollama/llama3",
        "temperature": 0,
        "format": "json",  # Ollama 需要显式指定格式
        "base_url": "http://localhost:11434",  # 设置 Ollama URL
    },
    "embeddings": {
        "model": "ollama/nomic-embed-text",
        "base_url": "http://localhost:11434",  # 设置 Ollama URL
    },
    "verbose": True,
}
?
?
smart_scraper_graph2 = SmartScraperGraph(
    prompt="返回该页面所有书的名字、作者名、评分、书籍链接",
    source="https://book.douban.com/top250",
    config=graph_config
)
?
result2 = smart_scraper_graph2.run()
print(result2)

Run

--- Executing Fetch Node ---
--- Executing Parse Node ---
--- Executing RAG Node ---
--- (updated chunks metadata) ---
--- (tokens compressed and vector stored) ---
--- Executing GenerateAnswer Node ---
Processing chunks: 100%|████████████████████████| 1/1 [00:00<00:00, 1474.79it/s]
{}

采集失败,返回空。

将大模型llama3改为qwen2

from scrapegraphai.graphs import SmartScraperGraph
?
?
graph_config2 = {
    "llm": {
        "model": "ollama/qwen2",
        "temperature": 0,
        "format": "json",  # Ollama 需要显式指定格式
        "base_url": "http://localhost:11434",  # 设置 Ollama URL
    },
    "embeddings": {
        "model": "ollama/nomic-embed-text",
        "base_url": "http://localhost:11434",  # 设置 Ollama URL
    },
    "verbose": True,
}
?
?
smart_scraper_graph3 = SmartScraperGraph(
    prompt="返回该页面所有书的名字、作者名、评分、书籍链接",
    source="https://book.douban.com/top250",
    config=graph_config2
)
?
result3 = smart_scraper_graph3.run()
print(result3)

Run

--- Executing Fetch Node ---
--- Executing Parse Node ---
--- Executing RAG Node ---
--- (updated chunks metadata) ---
--- (tokens compressed and vector stored) ---
--- Executing GenerateAnswer Node ---
Processing chunks: 100%|████████████████████████| 1/1 [00:00<00:00, 1102.60it/s]
{'urls': ['https://book.douban.com/subject/10554308/', 'https://book.douban.com/subject/1084336/', 'https://book.douban.com/subject/1084336/', 'https://book.douban.com/subject/1046209/', 'https://book.douban.com/subject/1046209/', 'https://book.douban.com/subject/1255625/', 'https://book.douban.com/subject/1255625/', 'https://book.douban.com/subject/1060068/', 'https://book.douban.com/subject/1060068/', 'https://book.douban.com/subject/1449351/', 'https://book.douban.com/subject/1449351/', 'https://book.douban.com/subject/20424526/', 'https://book.douban.com/subject/20424526/', 'https://book.douban.com/subject/29799269/', 'https://book.douban.com/subject/1034062/', 'https://book.douban.com/subject/1229240/', 'https://book.douban.com/subject/1237549/', 'https://book.douban.com/subject/1078958/', 'https://book.douban.com/subject/1076932/', 'https://book.douban.com/subject/1075440/', 'https://book.douban.com/subject/1076932/', 'https://book.douban.com/subject/1078958/', 'https://book.douban.com/subject/1076932/', 'https://book.douban.com/subject/1078958/', 'https://book.douban.com/subject/1076932/', 'https://book.douban.com/subject/1078958/', 'https://book.douban.com/subject/1076932/'], 'images': ['https://img1.doubanio.com/view/subject/s/public/s1078958.jpg', 'https://img1.doubanio.com/view/subject/s/public/s1076932.jpg', 'https://img1.doubanio.com/view/subject/s/public/s1447349.jpg']}

采集到一些信息,但没有书名、作者等信息。

如何学习AI大模型 ?

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】??

优快云粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传优快云,朋友们如果需要可以扫描下方二维码&点击下方优快云官方认证链接免费领取 【保证100%免费】

读者福利: ???优快云大礼包:《最新AI大模型学习资源包》免费分享 ???

(???安全链接,放心点击)

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

??1.大模型入门学习思维导图??

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

??2.AGI大模型配套视频??

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

在这里插入图片描述
在这里插入图片描述

??3.大模型实际应用报告合集??

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

??4.大模型落地应用案例PPT??

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

在这里插入图片描述

??5.大模型经典学习电子书??

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
img

在这里插入图片描述

??6.大模型面试题&答案??

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)

在这里插入图片描述
??学会后的收获:??
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习

优快云粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传优快云,朋友们如果需要可以扫描下方二维码&点击下方优快云官方认证链接免费领取 【保证100%免费】

读者福利: ???优快云大礼包:《最新AI大模型学习资源包》免费分享 ???

(???安全链接,放心点击)

<think>好的,用户想了解大模型爬虫领域的应用场景和实现方式。首先,我需要回忆一下相关的引用内容,确保信息准确。 根据引用[1],大模型在RAG技术中用于问答系统和内容生成,可能涉及到爬虫的数据抓取部分。引用[2]提到使用Scrapy、Selenium等工具,但结合大模型的话,可能需要更智能的解析方法。引用[3]则直接指出大模型和Prompt如何提升爬虫效率,特别是智能解析方面。 接下来,应用场景方面,用户可能想知道具体有哪些场景适合用大模型。例如,动态网页处理、复杂数据抽取、反爬虫绕过等。这些场景中,传统方法可能效率低下或难以处理,大模型的NLP能力可以发挥作用。 技术方案部分,需要分步骤说明。首先是智能页面解析,大模型可以理解网页结构,替代传统的XPath或正则表达式。然后是动态内容生成,比如生成模拟人类行为的请求头。再者是反爬虫策略应对,如自动识别验证码。另外,数据清洗和增强也是大模型的强项。 实现方式方面,可能需要结合现有框架,比如用Scrapy处理爬取流程,再集成大模型的API进行内容解析。同时,Prompt工程是关键,需要设计合适的指令让大模型准确提取数据。 还要考虑用户可能不知道的技术细节,比如如何设计Prompt,或者如何处理大模型的响应延迟问题。此外,引用中的例子提到智能问答系统,可能可以举例说明如何用大模型增强爬虫的数据处理能力。 最后,生成相关问题时要覆盖技术实现、优化方法、挑战和实际案例,帮助用户进一步探索。</think>### 大模型爬虫领域的应用场景及技术方案 #### 一、应用场景 1. **动态网页内容解析** 传统爬虫依赖固定的规则(如XPath、CSS选择器)解析网页,但面对动态生成内容或复杂页面结构时效率低下。大模型通过自然语言理解能力,可识别非结构化文本中的关键信息(如商品价格、评论情感等),提升数据提取的泛化能力[^3]。 2. **反爬虫策略应对** 大模型可模拟人类浏览行为(如随机滑动、点击延迟),生成更自然的请求头(User-Agent、Referer),降低被目标网站封禁的风险。例如,通过Prompt生成符合特定场景的请求参数[^2]。 3. **数据清洗与增强** 对爬取的原始数据(如新闻正文、社交媒体文本),大模型可执行去噪(过滤广告)、摘要生成或实体识别(如人名、地点),直接输出结构化数据。 4. **智能爬虫任务生成** 通过自然语言指令(如“抓取近三个月科技领域的融资新闻”),大模型可自动生成爬虫代码逻辑(如目标网站筛选、时间范围设定),降低开发门槛。 --- #### 二、技术实现方案 ##### 1. 基于Prompt的智能解析 - **传统方法**:依赖正则表达式或固定规则提取数据,需针对不同网站定制规则。 - **大模型方案**: 输入Prompt示例: ```text 请从以下HTML片段中提取标题、作者和发布日期: <div class="article"> <h1 id="title">大模型赋能爬虫技术</h1> <span class="author">张三</span> <time>2024-03-15</time> </div> 输出JSON格式,键名为title, author, publish_date。 ``` 大模型可直接输出结构化结果: ```json { "title": "大模型赋能爬虫技术", "author": "张三", "publish_date": "2024-03-15" } ``` ##### 2. 动态请求生成 - **代码示例(结合Scrapy)**: ```python import scrapy from llm_api import generate_headers # 假设的大模型API封装 class SmartSpider(scrapy.Spider): name = "smart_spider" def start_requests(self): prompt = "生成适合访问新闻网站的HTTP请求头,包含合理的User-Agent和Referer" headers = generate_headers(prompt) # 调用大模型生成请求头 yield scrapy.Request(url="https://news.example.com", headers=headers) ``` ##### 3. 反反爬虫策略 - **验证码识别**: 通过Prompt指令让大模型描述图像内容(如“请用文字描述图片中的4位数字”),再提取文本结果。 - **行为模拟**: 使用大模型生成随机操作序列(如“模拟用户浏览页面2秒后滚动到底部”),通过Selenium执行。 --- #### 三、典型案例 **智能电商价格监控系统** 1. 爬虫抓取商品页面HTML(含动态渲染内容) 2. 大模型解析页面,提取价格、促销信息、库存状态 3. 输出结构化数据并触发价格波动预警 **技术栈组合**: ``` Scrapy(爬取框架) + Playwright(渲染页面) + GPT-4(信息提取) + Prometheus(监控预警) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值