插入Schema.org属性:JQuery或DOMDocument?

问题描述:

我的Wordpress插件会将模式属性插入到页面的源代码中。到目前为止,我使用DOMDocument来完成这个任务。插入Schema.org属性:JQuery或DOMDocument?

$imgs = $doc->getElementsByTagName('img'); 
foreach ($imgs as $img) { 
    $img->setAttribute('itemprop', 'image'); 
} 

既然我已经在同一个插件使用JQuery,我想这个替代的功能。

$('img').attr('itemprop', 'image'); 

我更喜欢JQuery的原因是这样的:我注意到无效的HTML语法可能会破坏DOMDocument方法。因为我不能指望插件的其他用户只使用有效的HTML,所以我禁用了该函数的错误报告。我觉得这样做并不舒服,JQuery函数看起来更加优雅(在我看来!)另外,我还没有找到一种方法将属性插入到body-tag中,我只能添加属性(我想知道你是怎么做到的!)

但是,JQuery函数有一个缺点 - 那最终会导致我的问题。我注意到,插入的属性不会显示在Firefox或Chrome的源视图中。这可能是因为JQuery在页面呈现后插入这些内容。我可以看到Firebug和Chrome检查器中的项目属性。

现在。

我没有太多的关于如何爬虫工作,如果他们会/可以执行Javascript。如果他们不这样做,那么使用JQuery是没有意义的。

你觉得怎么样更好

爬行不会阅读jQuery的插入元数据。您需要在发送http响应之前添加此内容。

DOMDocument中断可能可以通过指定正确的文档类型来修复。无论如何,post-render javascript解决方案是不够的,因为元数据对搜索引擎是不可见的。

你会知道到底该抓取工具使用丰富网页摘要测试工具是什么: http://www.google.com/webmasters/tools/richsnippets

+0

非常有用的链接+1 – smartcaveman