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

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
在Laravel中使用Flash会话数据在Laravel中使用Flash会话数据Mar 12, 2025 pm 05:08 PM

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

php中的卷曲:如何在REST API中使用PHP卷曲扩展php中的卷曲:如何在REST API中使用PHP卷曲扩展Mar 14, 2025 am 11:42 AM

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

简化的HTTP响应在Laravel测试中模拟了简化的HTTP响应在Laravel测试中模拟了Mar 12, 2025 pm 05:09 PM

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

在Codecanyon上的12个最佳PHP聊天脚本在Codecanyon上的12个最佳PHP聊天脚本Mar 13, 2025 pm 12:08 PM

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

解释PHP中晚期静态结合的概念。解释PHP中晚期静态结合的概念。Mar 21, 2025 pm 01:33 PM

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

PHP记录:PHP日志分析的最佳实践PHP记录:PHP日志分析的最佳实践Mar 10, 2025 pm 02:32 PM

PHP日志记录对于监视和调试Web应用程序以及捕获关键事件,错误和运行时行为至关重要。它为系统性能提供了宝贵的见解,有助于识别问题并支持更快的故障排除

在Laravel中发现文件下载的存储::下载在Laravel中发现文件下载的存储::下载Mar 06, 2025 am 02:22 AM

Laravel框架的Storage::download方法提供了一个简洁的API,用于安全地处理文件下载,同时管理文件存储的抽象。 以下是一个在示例控制器中使用Storage::download()的例子:

如何注册和使用Laravel服务提供商如何注册和使用Laravel服务提供商Mar 07, 2025 am 01:18 AM

Laravel的服务容器和服务提供商是其架构的基础。 本文探讨了服务容器,详细信息服务提供商创建,注册,并通过示例演示了实际用法。 我们将从OVE开始

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
2 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器