插入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解决方案是不够的,因为元数据对搜索引擎是不可见的。
非常有用的链接+1 – smartcaveman