搜索
首页后端开发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
可以在PHP会话中存储哪些数据?可以在PHP会话中存储哪些数据?May 02, 2025 am 12:17 AM

phpsessionscanStorestrings,数字,数组和原始物。

您如何开始PHP会话?您如何开始PHP会话?May 02, 2025 am 12:16 AM

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考虑使用AttActAcks.s.s.4)

什么是会话再生,如何提高安全性?什么是会话再生,如何提高安全性?May 02, 2025 am 12:15 AM

会话再生是指在用户进行敏感操作时生成新会话ID并使旧ID失效,以防会话固定攻击。实现步骤包括:1.检测敏感操作,2.生成新会话ID,3.销毁旧会话ID,4.更新用户端会话信息。

使用PHP会话时有哪些性能考虑?使用PHP会话时有哪些性能考虑?May 02, 2025 am 12:11 AM

PHP会话对应用性能有显着影响。优化方法包括:1.使用数据库存储会话数据,提升响应速度;2.减少会话数据使用,只存储必要信息;3.采用非阻塞会话处理器,提高并发能力;4.调整会话过期时间,平衡用户体验和服务器负担;5.使用持久会话,减少数据读写次数。

PHP会话与Cookie有何不同?PHP会话与Cookie有何不同?May 02, 2025 am 12:03 AM

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

PHP如何识别用户的会话?PHP如何识别用户的会话?May 01, 2025 am 12:23 AM

phpientifiesauser'ssessionusessessionSessionCookiesAndSessionIds.1)whiwSession_start()被称为,phpgeneratesainiquesesesessionIdStoredInacookInAcookInamedInAcienamedphpsessidontheuser'sbrowser'sbrowser.2)thisIdAllowSphptptpptpptpptpptortoreTessessionDataAfromtheserverMtheserver。

确保PHP会议的一些最佳实践是什么?确保PHP会议的一些最佳实践是什么?May 01, 2025 am 12:22 AM

PHP会话的安全可以通过以下措施实现:1.使用session_regenerate_id()在用户登录或重要操作时重新生成会话ID。2.通过HTTPS协议加密传输会话ID。3.使用session_save_path()指定安全目录存储会话数据,并正确设置权限。

PHP会话文件默认存储在哪里?PHP会话文件默认存储在哪里?May 01, 2025 am 12:15 AM

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

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脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具