我不确定如何定义它,但基本上我想从给定的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();
我当然不是在这里要求代码(除非某人有一个代码片段并且愿意分享)但更多的是如何处理这个......我从哪里开始?
任何帮助将不胜感激!
答案 0 :(得分:9)
我可以推荐Boilerpipe用于原始文本提取,它使用一些高级算法来查找相关文本并删除它周围的样板(如菜单,页脚等等)。
关于图像,除了使用评论中已经建议的元标记之外,您还可以使用html解析器(如htmlparser)来提取所有“img”标记,然后使用一些启发式方法来选择最佳一。我正在使用一些启发式:
我一直在制作中使用这些启发式页面抓取一段时间,并且它们会产生很好的效果。
但是,要正确应用这些规则,您可能需要下载图像以获取其大小和/或解析样式属性。
如果您计划运行此服务器端,作为页面抓取服务,那么没关系。如果你打算在Android设备上动态执行它,它可能太重了。