【问题标题】:Open graph fetching meta data打开图获取元数据
【发布时间】:2017-01-21 07:01:44
【问题描述】:
我正在使用开放图形库从 url 获取元数据。
我从遵循 og 标记 规则的 url 链接获取标题和描述。如何从不遵循 og 标签 的 url 链接获取元数据。
我的简单代码:
OpenGraph data = new OpenGraph(url, true);
response.setDescription(data.getContent("description"));
response.setMetaDataImage(data.getContent("image"));
response.setTitle(data.getContent("title"));
response.setMetaDataUrl(data.getContent("url"));
数据获取为空。
【问题讨论】:
标签:
java
playframework
metadata
facebook-opengraph
【解决方案1】:
我想你说的是this library。如果是这样,构造函数中的布尔值就可以达到目的:
public OpenGraph(String url, boolean ignoreSpecErrors) {
...
}
我使用这个库获取例如图片的方式如下:
OpenGraph og = new OpenGraph(url, true);
MetaElement[] imageElements = og.getProperties("image");
也许您只是使用了错误的吸气剂?如果页面有 og 标签,这个 sn-p 应该可以工作!
【解决方案2】:
我与opengraph-java 有类似的问题(即得到空响应)。
我尝试了文档中的示例,但响应为 null
OpenGraph movie = new OpenGraph("http://www.rottentomatoes.com/m/back_to_the_future/", true);
System.out.println("movie = " + movie)); // movie = null
尝试ignoreSpecErrors 的false 选项会引发异常java.lang.Exception: Does not conform to Open Graph protocol
所以我创建了一个名为ogmapper 的库,它更灵活一些。
DefaultOgMapper ogMapper = new JsoupOgMapperFactory().build();
OgTags ogTags = ogMapper.process(new URL("http://www.rottentomatoes.com/m/back_to_the_future/"));
System.out.println("title = " + ogTags.getTitle()); // title = Back to the Future (1985)
希望这会有所帮助!