首页 > 后端开发 > php教程 > Difbot:爬行视觉机业学习

Difbot:爬行视觉机业学习

Jennifer Aniston
发布: 2025-02-20 12:44:11
原创
894 人浏览过

Difbot:爬行视觉机业学习

钥匙要点

  • > difbot是一种“视觉学习机器人”,它利用机器学习来爬网和视觉提取数据,比传统的网络爬行者提供了对Web内容的更可靠和类似人类的解释。
  • difbot API完全渲染页面,包括JavaScript内容,并允许从网页中提取各种数据类型,包括文本,图像,视频和元数据,例如作者或出版日期。
  • difbot的自定义API功能允许用户调整现有的difbot API或为自定义内容处理创建全新的API,从而从源代码中提取特定数据元素。
  • 您是否曾经想过,当您共享链接时,社交网络如何进行URL预览如何?他们怎么知道要抓住哪些图像,作为作者引用的图像,或者在预览中附加哪些标签?这一切都在源代码上爬行了复杂的言论吗?实际上,通常不是。源中定义的元信息可能是不可靠的,并且声誉不高的网站通常将其用作关键字载体,试图使搜索引擎排名更高。我们不是人类,在我们面前看到什么?
  • >
如果您想构建URL预览片段或新闻聚合器,则在线有许多自动爬网器,包括专有和开源,但是您很少会找到像Visual Machine Learning这样的利基市场。这正是difbot的本质 - 一个“视觉学习机器人”,它呈现出您完全要求的URL,然后视觉上提取数据,并根据需要从页面源帮助自己。

涵盖了一些理论后,在本文中,我们将在Sitepoint的一篇文章之一上进行演示API。

> php库

difbot的PHP库有些过时,因此我们不会在此演示中使用它。我们将执行RAW API呼叫,在以后的一些帖子中,我们将构建自己的API互动库。>

>尽管您想查看PHP库,但请参阅此处,如果您对其他语言的库感兴趣,Diffbot有一个目录。>

更新,2015年7月:自本文发表以来,已经开发了PHP库。在此处查看其整个开发过程,或此处的源代码。

>

> JavaScript内容

>我们在介绍性部分中说,Difbot将请求完全呈现,然后对其进行分析。但是,JavaScript内容呢?如今,网站通常在折叠上方渲染一些HTML,然后完成CSS,JS和动态内容加载。 difbot api可以看到吗?

实际上,是的。 Diffbot实际上将页面完整呈现,然后在我的Stackoverflow Q&A中进行视觉检查。不过,有一些警告,因此请确保您仔细阅读答案。

>

定价和API Health

difbot具有多个用法层。有一个免费的试用层,可在7天或10000个电话后杀死您的API令牌,以先到者为准。商业代币可以以各种价格购买,永远不会到期,但确实有局限性。开源和/或教育项目提供了一种特殊情况,该项目提供了较旧的免费令牌模型 - 每月最大一次,每秒一次,但永远不会到期。如果您认为自己有资格,您需要直接与他们联系。

difbot可以保证高正常运行时间,但有时会发生故障 - 尤其是在束最密集的API中,爬网:爬网。 Crawlbot用于爬网,而不仅仅是单个页面,因此比其他API的可靠性较低。没有很多,但是足以在API健康屏幕中引起注意 - 您可以检查API是否启动并运行,或者如果您的呼叫运行到问题或返回错误500时,您可以查看API是否正在运行,或者当前无法使用。

demo

要准备您的环境,请启动一个宅基地改进的实例。>

创建项目

>通过使用Vagrant SSH串入VM,进入代码文件夹,并执行作曲家创建作曲家创建Prokoxproject Laravel/Laravel Laravel-Prefer-Dist,从而创建一个启动器Laravel项目。这将使您可以通过http://homestead.app:8000从主机的浏览器访问Laravel问候页面。

>

添加路线和操作

在app/utaes.php中添加以下途径:

>

在应用程序/控制器/Homecontroller中添加以下操作:

<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>
登录后复制
登录后复制
登录后复制
>如果http://homestead.app:8000/diffbot现在在屏幕上输出“ HI”,我们已经准备好开始使用API​​。

获取令牌

<span>public function diffbotDemo() {
</span>        <span>die("hi");
</span>    <span>}</span>
登录后复制
登录后复制
要与DiffBot API进行交互,您需要一个令牌。在其定价页面上注册一个。为了进行此演示,让我们称之为令牌$令牌,我们将在URL中称为。在适当的情况下,用您自己的价值替换$令牌。

>安装guzzle

>我们将使用Guzzle作为HTTP客户端。这不是必需的,但我建议您通过过去的文章熟悉它。>

>添加“ guzzlehttp/guzzle”:“ 4.1.*@dev”到您的作曲家。

在项目root中,运行作曲家更新。

>提取文章数据

在第一个示例中,我们将使用Diffbot的默认文章API爬网。为此,我们指的是在解释工作流程方面做得很好的文档。将diffbotdemo动作的主体更改为以下代码:

>

"require": {
		"laravel/framework": "4.2.*",
        "guzzlehttp/guzzle": "4.1.*@dev"
	},
登录后复制
首先,我们设置了令牌。然后,我们定义一个将持有API版本的变量。接下来,由我们创建一个新的guzzle客户端,我们也给它一个基本URL,因此我们不必在每次提出另一个请求时都将其输入。

>

接下来,我们通过向API的URL发送get请求来创建一个响应对象,然后以key => value格式中添加一个查询参数。在这种情况下,我们仅传递给令牌和URL,这是最基本的参数。

>

>最后,由于Diffbot API返回JSON数据,我们使用Guzlezle的JSON()方法将其自动解码为数组。然后,我们非常印刷此数据:

Difbot:爬行视觉机业学习

如您所见,我们很快收回了一些信息。有使用的图标,已返回文本,标题,甚至语言,日期和HTML的预览。但是,您会注意到没有作者。让我们更改此内容并要求更多值。

>

>如果我们将“字段”参数添加到查询参数列表中并给它一个“标签”的值,则DiffBot将尝试从提供的URL中提取标签/类别。将此行添加到查询阵列:

<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>
登录后复制
登录后复制
登录后复制
,然后将模具部分更改为:

>

<span>public function diffbotDemo() {
</span>        <span>die("hi");
</span>    <span>}</span>
登录后复制
登录后复制
刷新屏幕现在为我们提供了:

Difbot:爬行视觉机业学习

,但是,本文的源代码记录了其他几个标签:

>

Difbot:爬行视觉机业学习

>为什么结果如此不同?这正是由于我们在本文第一段结束时提到的原因:我们人类看到的是优先。 Diffbot是一个视觉学习机器人,因此它的AI从实际渲染内容(它可以看到的内容)中扣除了标签,而不是从查看源代码中,该源代码很容易出于SEO的目的。 但是,如果有人真正需要,是否有一种方法可以从源代码中获取标签?此外,我们可以让Difbot在Sitepoint文章上识别作者吗?是的。使用自定义API。

>元标记和具有自定义API

的作者

自定义API是一个功能,您不仅可以通过添加新的字段和内容提取规则来调整现有的DiffBot API,还可以使您创建全新的API(也可以通过专用URL访问)用于自定义内容处理。

>转到开发仪表板并使用令牌登录。然后,进入“自定义API”。激活底部的“创建规则”选项卡,然后输入我们要爬到URL框中的文章的URL,然后单击“测试”。您的屏幕应该看起来像这样:

>您会立即注意到作者字段是空的。您可以通过单击其旁边的编辑来调整作者搜索规则,并在打开的实时预览窗口中找到作者元素,然后单击它以获取所需的结果。但是,由于某些人在SitePoint的末端不到完美的CSS,因此很难为Diffbot的API提供一致的作者名称途径,尤其是通过单击元素。相反,手动添加以下规则:.contributor-large .contributor_name a,然后单击“保存”。

>您会注意到“预览窗口”现在正确填充了作者字段:>

Difbot:爬行视觉机业学习

实际上,该新规则会自动应用于您令牌的所有站点点链接。如果您尝试预览另一个SitePoint文章,那么您会发现Peter Nijssen已成功提取:

Difbot:爬行视觉机业学习

好吧,让我们进一步修改API。我们需要文章:源代码中可见的标签值。这样做需要一个两步的过程。

>步骤1:定义集合

>集合正是听起来像是通过特定规则集获取的值集合。我们称我们的集合为“ metatags”,并为其提供以下选择器:meta [property = Artive:tag]。这意味着“在HTML中查找具有带有值文章的属性属性的所有元元素:tag”。

>步骤2:定义收集字段

>集合字段是集合中的个别条目 - 在我们的情况下,各种标签。单击“将自定义字段添加到此集合”,然后添加以下值:>

单击保存。您将立即可以访问“结果”窗口中的标签列表:Difbot:爬行视觉机业学习>

将diffbotdemo()动作的最终输出更改为: Difbot:爬行视觉机业学习

现在,如果您现在刷新我们测试的URL(http://homestead.app:8000/diffbot),您会注意到作者和元标记值在那里。这是上述代码生成的输出:

>

<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>
登录后复制
登录后复制
登录后复制

我们有我们的标签!

结论

> difbot是Web的强大数据提取器 - 无论您是否需要将许多站点合并为单个搜索索引,而无需结合后端,想要构建新闻汇总器,对URL Preview Web组件有一个想法,还是想法想要定期收获竞争对手公共定价清单的内容,Diffbot可以提供帮助。有了DEAD简单的API调用和高度结构化的响应,您几乎没有时间启动并运行。在后来的文章中,我们将构建一个全新的API,用于将DIFFBOT与PHP一起使用,并用它重做上述电话。我们还将在Packagist上托管库,因此您可以轻松地将其与作曲家安装。请继续关注!

经常询问有关difbot

的问题(常见问题解答)

> difbot的主要功能是什么?它旨在以人类的方式理解网页,使其成为数据提取的强大工具。 Difbot可用于从社交媒体网站,新闻文章,产品页面等收集数据。这对于需要快速,准确地收集大量数据的企业特别有用。

>

> diffbot的机器学习技术如何工作?

diffbot使用一种已知的人工智能形式来理解的人工智能形式并解释网页。它使用算法来分析网页的结构和内容,然后根据该分析提取相关数据。这允许Diffbot以类似于人类的方式来理解网页,使其成为数据提取的功能强大的工具。

哪些类型的数据可以difbot提取?

diffbot可以提取提取来自网页的广泛数据类型。这包括文本,图像,视频等。它还可以提取元数据,例如网页的作者或发布的日期。这使Difbot成为数据提取的多功能工具,能够从网络中收集广泛的信息。

>

> diffbot的数据提取的准确性如何?

diffbot的数据提取非常准确,这要归功于它使用机器学习技术。它旨在以人类的方式理解网页,从而使其能够准确识别和提取相关数据。但是,像任何工具一样,它的准确性可以取决于网页的复杂性和所提取的数据类型。

可以从社交媒体站点中提取数据吗?

是的,是的,diffbot可以从社交媒体网站中提取数据。这包括Facebook,Twitter和LinkedIn等网站。它可以收集帖子,评论,喜欢和分享等数据,使其成为社交媒体分析和市场研究的有用工具。

> difbot易于使用吗?

difbot设计为用户友好,具有简单的接口和清晰的说明。但是,像任何工具一样,新用户可能会有学习曲线。幸运的是,DiFbot提供了一系列资源来帮助用户开始,包括教程和客户支持。

difbot可以处理大量数据吗?数据。对于需要快速,准确地收集和分析大量数据的企业来说,这是一个强大的工具。 Diffbot的机器学习技术允许其快速处理数据,使其成为大数据项目的宝贵工具。

>

哪些行业可以从使用DiffBot?

>中受益。 difbot。这包括营销,研究,新闻业,电子商务等。任何依赖于网络收集和分析数据的行业都可以从使用Difbot中受益。

> difbot与其他数据提取工具相比如何?

difbot从其他数据提取工具中脱颖而出。使用机器学习技术。这使其可以以类似于人类的方式来理解和解释网页,从而使其成为数据提取的强大而准确的工具。但是,像任何工具一样,其有效性可以取决于用户的特定需求。

是DiffBot是可靠的数据提取工具吗?它被广泛的企业和行业用于收集和分析网络的数据。它对机器学习技术的使用使其能够准确提取相关数据,从而使其成为可信赖的数据提取工具。

以上是Difbot:爬行视觉机业学习的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板