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

nas的wordpress的端口qq群排名优化软件官网

nas的wordpress的端口,qq群排名优化软件官网,discuz官网,广州陈村网站建设使用 Scrapy 时,你可以轻松使用大型语言模型 (LLM) 来自动化或增强你的 Web 解析。 有多种使用 LLM 来帮助进行 Web 抓取的方法。在本指南中,我们将在每个页面上调用一个 LLM,从中抽取我们定义的一组属性,而无需编写任何选择器或…

使用 Scrapy 时,你可以轻松使用大型语言模型 (LLM) 来自动化或增强你的 Web 解析。

有多种使用 LLM 来帮助进行 Web 抓取的方法。在本指南中,我们将在每个页面上调用一个 LLM,从中抽取我们定义的一组属性,而无需编写任何选择器或训练任何模型。

 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割

1、启动 Scrapy 项目

按照 Web 抓取教程的启动 Scrapy 项目页面上的说明启动 Scrapy 项目。

2、安装 LLM 依赖项

本指南将使用 LiteLLM 作为 LLM 的 API。

出于本指南的目的,我们将通过 Ollama 运行 Mistral 7B LLM,但 LiteLLM 几乎可以运行任何 LLM,正如你稍后将看到的那样。

首先安装 html2text、LiteLLM 和 Ollama:

pip install html2text litellm ollama

然后启动 Ollama 服务器:

ollama serve

打开第二个终端,安装 Mistral 7B:

ollama pull mistral

3、在你的爬虫程序中使用 LLM

现在你有一个包含简单爬虫程序和 LLM 的 Scrapy 项目可供使用,请在 tutorial/spiders/books_toscrape_com_llm.py 中使用以下代码创建第一个爬虫程序的替代方案:

import json
from json.decoder import JSONDecodeError
from logging import getLoggerimport ollama
from html2text import HTML2Text
from litellm import acompletion
from scrapy import Spiderhtml_cleaner = HTML2Text()
logger = getLogger(__name__)async def llm_parse(response, prompts):key_list = ", ".join(prompts)formatted_scheme = "\n".join(f"{k}: {v}" for k, v in prompts.items())markdown = html_cleaner.handle(response.text)llm_response = await acompletion(messages=[{"role": "user","content": (f"Return a JSON object with the following root keys: "f"{key_list}\n"f"\n"f"Data to scrape:\n"f"{formatted_scheme}\n"f"\n"f"Scrape it from the following Markdown text:\n"f"\n"f"{markdown}"),},],model="ollama/mistral",)data = llm_response["choices"][0]["message"]["content"]try:return json.loads(data)except JSONDecodeError:logger.error(f"LLM returned an invalid JSON for {response.url}: {data}")return {}class BooksToScrapeComLLMSpider(Spider):name = "books_toscrape_com_llm"start_urls = ["http://books.toscrape.com/catalogue/category/books/mystery_3/index.html"]def parse(self, response):next_page_links = response.css(".next a")yield from response.follow_all(next_page_links)book_links = response.css("article a")yield from response.follow_all(book_links, callback=self.parse_book)async def parse_book(self, response):prompts = {"name": "Product name","price": "Product price as a number, without the currency symbol",}llm_data = await llm_parse(response, prompts)yield {"url": response.url,**llm_data,}

在上面的代码中:

首先定义了一个 llm_parse 函数,它接受 Scrapy 响应和要提取的字段字典及其字段特定提示。

然后,将响应转换为 Markdown 语法,以便 LLM 更轻松地解析,并向 LLM 发送一个提示,要求输入具有相应字段的 JSON 对象。

注意:构建一个以预期格式获取预期数据的提示是此过程中最困难的部分。此处的示例提示适用于 Mistral 7B 和  books.toscrape.com,但可能不适用于其他 LLM 或其他网站。

如果是有效的 JSON,则返回 LLM 结果。

使用字段提示调用 llm_parse 来提取名称和价格,并在包含非来自 LLM(url)的额外字段后生成结果字典。

现在可以运行你的代码:

scrapy crawl books_toscrape_com_llm -O books.csv

在大多数计算机上,执行将需要很长时间。运行 ollama serve 的终端中的日志将显示你的 LLM 如何获取提示并为其生成响应。

执行完成后,生成的 books.csv 文件将包含 books.toscrape.com 神秘类别中所有书籍的记录(CSV 格式)。您可以使用任何电子表格应用程序打开 books.csv

4、后续步骤

以下是一些后续步骤的想法:

  • 尝试其他 LLM。

上述代码中的以下一行通过 Ollama 的本地实例确定要使用的 LLM 是 Mistral 7B:

model="ollama/mistral"

如果你可以访问其他 LLM,则可以将此行更改为使用其他 LLM,并查看更改如何影响速度、质量和成本。

请参阅 LiteLLM 文档,了解许多不同 LLM 的设置说明。

  • 看看你是否可以获得与 Zyte API 自动提取相同的输出(例如产品),同时具有可比的速度、质量和成本。
  • 看看你是否还可以自动化抓取部分并实现与 Zyte 的 AI 驱动蜘蛛可以做的事情类似的目标。
  • 尝试提取源 HTML 中无法以结构化方式获得的数据,例如书籍作者,有时可以在书籍描述中找到。
  • 尝试提取源 HTML 中无法直接获得的数据,例如书籍语言(英语)、货币代码(GBP)或书籍描述的摘要。
  • 尝试不同的 HTML 清理方法,或者根本不进行清理。

上面的代码将响应 HTML 转换为 Markdown,因为这允许 Mistral 7B 按预期工作。其他 LLM 可能适用于原始 HTML,可能在经过一些清理之后(请参阅 clear-html),从而能够提取转换为 Markdown 时可能丢失的一些额外数据。

但请注意,LLM 的上下文长度有限,可能需要清理和修剪 HTML 才能将 HTML 放入提示中,而不会超过该上下文长度。

  • 如果你可以访问支持图像解析的 LLM,请查看是否可以扩展蜘蛛以下载书籍封面,并从中提取其他信息,例如书籍作者。
  • 不要每页使用一个 LLM,而是使用 LLM 根据第一页的原始 HTML 为所需字段生成 CSS 选择器,并使用这些选择器解析所有其他页面。

这样可以最大限度地减少 LLM 的使用,以获得更好的速度和成本,但对于具有多种不同布局或执行某些布局 A-B 测试的网站,或者网站在抓取过程中更改布局的不幸情况,可能会影响质量。


原文链接:Scrapy 大模型爬虫 - BimAnt

http://www.yidumall.com/news/82731.html

相关文章:

  • APP网站开发私人订制百度的营销方式有哪些
  • 单仁网站建设海外市场推广做什么的
  • 官方网站建设手机银行成都关键词seo推广平台
  • web网站开发总结百度网盘手机app下载安装
  • 云南网站开发软件百度推广竞价技巧
  • 做网站的公司术语搜索引擎算法
  • 做教育的有哪些网站怎么做一个网页
  • 砚山县住房和城乡建设局网站被公司优化掉是什么意思
  • 集团简介ppt优秀范例windows优化大师有用吗
  • 建站快车复制测试账号网站内容惠州seo网站推广
  • 婚庆网站建设论文aso优化贴吧
  • 溧阳网站制作产品推广渠道
  • 做网站直播平台今天的头条新闻
  • 国外购物网站建设深圳网络运营推广公司
  • 三分钟做网站秦皇岛seo优化
  • 网站建设丶金手指B排名14搜索引擎营销的特点包括
  • 一个公司可以做多少个网站账号权重查询入口站长工具
  • 美国十大购物网站登录百度账号
  • wordpress csv field黄山seo
  • 唐山如何做百度的网站建设的磁力搜索引擎
  • 一流的赣州网站建设惠州企业网站建设
  • 嘉兴百度网站推广成都百度推广代理公司
  • 手机网站制作工具网络推广培训班
  • 手机做炫光图头像的网站全网整合营销推广
  • 网站开发保密合同武汉百度推广开户
  • 青岛城市建设档案馆网站商家联盟营销方案
  • 网站开发工作室营业执照哈尔滨新闻头条今日新闻
  • 网站建设 电子商务网站开发百度指数关键词工具
  • 家居企业网站建设案例免费推广工具
  • 海南 网站 建设3000行业关键词