从URL获取相关图像和摘要

Lio*_*luz 10 java android

我不确定如何定义它,但基本上我想从给定的URL检索相关的图像和文本摘要.

例如,当用户将链接粘贴到Facebook上的共享框时,它会立即从文章本身和相关图像中获取文章标题和/或短文本块.它永远不会得到错误的图像,如网站的标识或文章本身周围的文字......

同样适用于Google+和其他社交网络或此类服务.

我开始假设我需要使用下面的代码阅读页面内容,如何确定哪个图像是相关的(来自文章正文)以及哪个文本是文章文本?

URL oracle = new URL("http://www.oracle.com/");
BufferedReader in = new BufferedReader(
    new InputStreamReader(oracle.openStream()));

String inputLine;
while ((inputLine = in.readLine()) != null)
    System.out.println(inputLine);

in.close();
Run Code Online (Sandbox Code Playgroud)

我当然不是在这里要求代码(除非某人有一个代码片段并且愿意分享)但更多的是如何处理这个...我从哪里开始?

任何帮助将不胜感激!

Sim*_*nni 9

我可以推荐Boilerpipe用于原始文本提取,它使用一些高级算法来查找相关文本并删除它周围的样板(如菜单,页脚等...).

关于图像,除了使用评论中已经建议的元标记之外,您还可以使用html解析器(如htmlparser)来提取所有"img"标记,然后使用一些启发式方法来选择最佳标记.我正在使用一些启发式:

  • 没有小于30像素的图像,它们通常是图标或广告跟踪图像
  • 平方更好,这避免了统治者和类似的东西
  • 没有标准的已知横幅尺寸
  • 页面越高越好
  • 靠近Boilerplate提取的内容(这很难)

我一直在生产中使用这些启发式页面抓取一段时间,它们给出了很好的结果.

但是,要正确应用这些规则,您可能需要下载图像以获取其大小和/或解析样式属性.

如果您计划运行此服务器端,作为页面抓取服务,那么它没关系.如果你打算在Android设备上动态执行它,它可能太重了.