Bing Search,Imgur和Reddit等网站如何从URL生成网站的缩略图
How do sites like Bing Search, Imgur, and Reddit generate a thumbnail of the website from a URL?
在Imgur中,您可以输入图像URL,几秒钟后,就会出现图像的缩略图。或者在必应搜索中,你可以(或习惯)在访问网站之前在搜索结果中查看网站的缩略图。
我很想为我的网站实现类似的东西,但我无法弄清楚它是如何完成的。此外,难道没有安全问题吗?我想服务器至少必须下载网站,渲染它并截取屏幕截图。如果它是一个恶意网站,并且您在服务器上下载了恶意内容怎么办?
像PhantomJS这样的无头Web浏览器引擎可以用于此目的。请参阅他们维基上的示例。是的,谨慎的做法是在某种沙箱中运行它,将 URL 队列输入其中,然后从文件系统中获取生成的缩略图。
虽然我不知道上述任何服务的内部工作原理,但我猜他们下载/创建图像的本地副本并从中生成缩略图。
Imgur作为图像托管服务,在能够从中生成缩略图或其他任何内容之前,肯定需要图像的副本。图像可以存储在本地或仅存储在内存中,但无论哪种方式,都必须下载。
显示网站屏幕截图的搜索引擎可能具有在内容被索引时定期截取可视区域的屏幕截图的服务,然后将这些屏幕截图(或衍生品)与搜索结果一起提供。截取屏幕截图确实并不危险,因此无需担心,并且无论使用什么工具来加载/解析/索引网站,显然都会考虑到安全考虑。
当然,您正在下载的数据也存在安全问题;图像很容易在其EXIF数据中包含可执行代码(例如PHP),因此您需要小心如何处理图像以及如何处理。
相关文章:
- 如何使用url确定网站协议
- 下载URL中的所有文件
- 使用libcurl提交批量url的正确BING Api POST url是什么
- 如何从网站获取数据并将其传输到数据库?
- 将所有 URL 组织在类中的一个位置
- 网站和C++程序在同一台 Linux PC 上的通信
- 从 C++ 中的 URL 获取结果
- 在加载 MSHTML 文档之前从 MSHTML 文档中删除无效的 URL
- 连接到 URL Sqlite 数据库C++
- 如何在QTextEdit中添加URL或IMAGE-URL
- 从网站复制证书,并使用脚本将其添加到受信任的根证书颁发机构
- c++ 网络浏览器块 url
- PHP Profiler语言 - 使用 C++ 从 PHP 扩展获取客户端 IP 和 URL
- 如何在C++中获取重定向网页的URL
- 访问其他网站后如何获得完整(精确)的URL / QUrl地址?
- C :如何将多个URL从网站HTML提取到向量
- C++ HTTP Winsock:在学校"Banned URL",甚至是允许的网站
- Bing Search,Imgur和Reddit等网站如何从URL生成网站的缩略图
- 创建一个脚本,使我自动登录到由 IP URL 访问的网站,包括"click OK to logon"
- 如何获得网站的url调用NPAPI插件