Html Facebook没有';不加载动态元标记
我正在使用下面的函数(GWT)动态创建HTML元标记。需要1秒才能将其放到DOM上。除了Facebook,它工作正常。当我从我的网站共享一个链接时,scraper会得到HTML:none中的meta标记。我怎样才能解决这个问题Html Facebook没有';不加载动态元标记,html,facebook,web-scraping,meta-tags,scraper,Html,Facebook,Web Scraping,Meta Tags,Scraper,我正在使用下面的函数(GWT)动态创建HTML元标记。需要1秒才能将其放到DOM上。除了Facebook,它工作正常。当我从我的网站共享一个链接时,scraper会得到HTML:none中的meta标记。我怎样才能解决这个问题 /** * Include the HTML attributes: title, description and keywords (meta tags) */ private void createHTMLheader(MyClass thing) { St
/**
* Include the HTML attributes: title, description and keywords (meta tags)
*/
private void createHTMLheader(MyClass thing) {
String title=thing.getTitle();
String description=thing.getDescription();
Document.get().setTitle(title);
MetaElement metaDesc = Document.get().createMetaElement();
metaDesc.setName("description");
metaDesc.setContent(description);
NodeList<Element> nodes = Document.get().getElementsByTagName("head");
nodes.getItem(0).appendChild(metaDesc);
}
原始HTML没有标题或元描述标记
由于某些原因,元描述没有加载上述函数
这是因为您只创建了一个新元元素,但您对它什么也不做
您必须将其附加到文档中,更具体地说,附加到其头
元素中
差不多
getHead().appendChild(metaDesc)
缺少。Facebook scraper只能看到服务器原始HTML响应中包含的
标记。它“不够聪明”,无法运行任何JavaScript代码、Flash插件、Java小程序或其他成熟浏览器可能运行的任何东西
您需要使用服务器端框架在服务器上生成这些
标记
此外,Facebook还提供了一个方便的工具,确保您的页面公开适当的元标记。您可能还需要添加OpenGraph标记,例如
og:title
和og:description
您能显示实际生成的HTML吗?谢谢。刚刚添加了一个问题:您是想用Java应用程序还是其他什么东西添加HTML标记?Facebook scraper不会运行您的Java代码。它将准确地看到您的web服务器正在发送的内容。下面的代码在客户端(GWT演示者)上运行。所以没有办法做到这一点?谢谢你。在服务器上生成元标记。嗨,Mike,你提到的关于Facebook刮板只看到原始HTML的观点是我发现的,因为我和OP有相同的问题。但是我想如果我在对DOM进行更改后使用$.getScript加载这个会怎么样。在我的理论中,FB的到来只是为了与新DOM擦肩而过。但这不可能吗?我担心当AddThis触发并单击FB共享时,URL会传递给FB&然后它会独立地抓取没有javascript编辑的元标记的共享URL。你对此有什么想法吗?丹尼尔。
getHead().appendChild(metaDesc)