2

类似于 Reddit 的 r/pic sub-reddit,我想聚合来自各种来源的媒体。一些网站使用 OEmbed 规范在页面上公开媒体,但并非所有网站都这样做。我正在浏览 Reddit 的源代码,因为基本上他们“抓取”用户提交的链接、检索图像、视频等。他们创建缩略图,然后在他们网站上的链接上显示。现在,我想做类似的事情,我查看了他们的代码[1],似乎他们为他们识别的每个域都有自定义刮板,然后他们有一个通用的刮板类,它使用简单的逻辑从任何域中获取图像(基本上,他们检索网页,解析 html,然后确定页面上最大的图像,然后使用该图像生成缩略图)。

由于它是开源的,我可能可以为我的应用程序重用代码,但不幸的是我选择了 Perl,因为这是一个爱好项目,我正在尝试学习 Perl。是否有具有类似功能的 Perl 模块?如果没有,是否有类似于 Python Imaging Library 的 Perl 模块?在不实际下载整个图像和缩略图生成的情况下确定图像大小会很方便。

谢谢!

[1] https://github.com/reddit/reddit/blob/master/r2/r2/lib/scraper.py

4

2 回答 2

1

Image::Size是用于确定各种格式的图像大小的专用模块。从资源中读取前 1000 个八位字节左右(足以容纳不同的图像标题)到缓冲区并对其进行操作应该就足够了。我没有测试过这个。

我不知道任何具有用于 HTTP 范围请求的 API 的通用抓取模块以避免下载整个图像资源,但是很容易继承WWW::Mechanize

于 2011-11-14T13:23:06.143 回答
0

试试PerlMagick,那里也列出了安装说明。

于 2011-11-13T09:50:38.100 回答