Skip to main content
 首页 » 编程设计

python之从 Perl 中的链接检索媒体(图像、视频等)

2025年05月04日8lyhabc

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

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

谢谢!

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

请您参考如下方法:

Image::Size是用于确定各种格式的图像大小的专用模块。从资源中读取前 1000 个八位字节左右就足够了,对于不同的图像 header 来说足够了,into a buffer and operating on that .我没有对此进行测试。

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