我需要一种在互联网上直观地表示随机网页的方法。
让我们举例说明this网页。
目前,这些是我可以使用的标准资产:
我需要以一种非常有意义的方式直观地表示随机网站,并邀请其他人点击它。
我需要类似Facebook在共享链接时所做的事情:
它会废弃图片链接,然后创建一个美丽有意义的图块,邀请您点击。
任何方式我都可以从网站上抓取图像和文字?我主要对Objective-C / JavaScript组合感兴趣,但任何事情都会被选为批准的答案。
编辑:重新撰写帖子并更改了标题。
答案 0 :(得分:6)
网站通常会为用户友好的社交媒体分享提供元信息,例如Open Graph protocol tags。实际上,在您自己的示例中,reddit页面具有Open Graph标记,这些标记构成了链接预览中的信息(查找带有 og:属性的元标记)。
后备方法是为大多数尚未符合standardized format的热门网站实施特定于网站的解析代码,或尝试一般猜测给定网站上最突出的内容是什么(例如,最重要的图像,第一段的前几句,标题元素中的文字等。
前一种方法的问题在于,您必须维护解析器,因为这些网站会发生变化和演变,而后者则无法可靠地预测页面上的重要内容,而您无法始终找到您的内容。重新寻找(例如缩略图的图像)。
由于您永远无法为100%的网站生成有意义的预览,因此归结为一个简单的问题。成功链接预览的可接受率是多少?如果它接近解析标准元信息的内容,我会坚持使用它并为自己省去很多麻烦。如果没有,或者上面分享的图书馆,您还可以查看付费服务/ API,这些服务/ API可能会覆盖比您自己更多的用例。
答案 1 :(得分:2)
这就是OpenGraph标准的用途。例如,如果您转到示例中的Reddit帖子,则可以查看HTML <meta />
标记提供的网页信息(所有名称以&#39; og&#39;开头):
但是,您无法从Web浏览器中获取数据; CORS阻止对URL的请求。事实上,Facebook似乎要做的是将URL发送到他们的服务器,并让他们执行请求以获取所需信息,然后将其发回。
答案 2 :(得分:1)
您可以开发自己的链接预览插件或使用现有的第三方可用插件。
此处发布示例是不可能的。但我可以链接流行的链接预览插件的URL。可以免费或付费。
<强> Link Preview 强>
<强> jQuery Preview 强>:
您可以查看您的网址演示here,其中包含 JSON 和原始数据的响应 您也可以使用API。
希望它有所帮助。