如何从随机网页中抓取文本和图像?

Posted

技术标签:

【中文标题】如何从随机网页中抓取文本和图像?【英文标题】:How can I scrape text and images from a random web page? 【发布时间】:2018-03-17 21:06:33 【问题描述】:

我需要一种方法来直观地表示互联网上的随机网页。

比如说this 网页。

目前,这些是我可以使用的标准资产:

网站图标:太小,太抽象。 标题:非常具体但视觉美感不佳。 网址:没人愿意阅读。 图标:太抽象了。 缩略图:很难得到,太丑了(很多元素挤在一个小空间里)。

我需要以一种非常有意义并吸引其他人点击的方式直观地表示一个随机网站。

我需要类似于 Facebook 在您分享链接时所做的事情:

它会删除图像的链接,然后创建一个漂亮的有意义的图块,邀请点击。

有什么方法可以从网站上抓取图片和文字?我主要对 Objective-C/javascript 组合感兴趣,但任何事情都会做,并且会被选为批准的答案。

编辑:重写帖子并更改标题。

【问题讨论】:

这里是基本示例:how to scrap text and image together? 【参考方案1】:

网站通常会为用户友好的社交媒体共享提供元信息,例如Open Graph protocol tags。实际上,在您自己的示例中,reddit 页面具有构成链接预览中信息的 Open Graph 标记(查找具有 og: 属性的元标记)。

一种备用方法是为尚未符合 standardized format 的大多数流行网站实施特定于站点的解析代码,或者尝试一般性地猜测给定网站上最突出的内容是什么(例如,最大的首屏图片、第一段的前几句、标题元素中的文本等)。

前一种方法的问题是,您必须随着这些网站的变化和发展而维护解析器,而使用后一种方法,您根本无法可靠地预测页面上的重要内容,并且您不能期望总能找到您想要的内容。正在寻找其中之一(例如缩略图的图像)。

由于您永远无法为 100% 的网站生成有意义的预览,因此可以归结为一个简单的问题。成功链接预览的可接受率是多少?如果它接近你可以解析标准元信息的内容,我会坚持下去,并为自己省去很多麻烦。如果没有,除了上面共享的库之外,您还可以查看付费服务/API,它们可能涵盖比您自己更多的用例。

【讨论】:

我对为网站制作缩略图不太感兴趣,而是对它们可用的语义信息感兴趣。 这也是相关的:***.com/questions/49418217/…【参考方案2】:

这就是 OpenGraph 标准的用途。例如,如果你去示例中的 Reddit 帖子,你可以查看 html <meta /> 标签提供的页面信息(所有名称以 'og' 开头的标签):

但是,您无法从网络浏览器中获取数据; CORS 阻止对 URL 的请求。事实上,Facebook 所做的似乎是将 URL 发送到他们的服务器并让他们执行请求以获取所需的信息,然后将其发回。

【讨论】:

【参考方案3】:

您可以开发自己的链接预览插件或使用现有的第三方可用插件。

无法在此处发布示例。但我可以获取流行的链接预览插件的 URL。可以免费或付费。

Link Preview

jQuery Preview

您可以查看您的 url 演示 here ,它以 JSONRaw 数据给出响应 您也可以使用 API。

希望对你有帮助。

【讨论】:

以上是关于如何从随机网页中抓取文本和图像?的主要内容,如果未能解决你的问题,请参考以下文章

javascript 从网页中删除图像,视频和背景,仅保留文本内容

Web,SQL:尽管文件名显示随机图像,从文件夹加载图像

如何使用 NodeJS 和 puppeteer 从 udemy 抓取图像

android studio:需要加载随机图像和顶部随机文本,然后将它们保存为 jpeg 以与其他应用程序共享

使用 PHP 保存随机图像

如何从图像中获取随机边界框? (Python)